Message ID | 1248211527-32253-6-git-send-email-u.kleine-koenig@pengutronix.de |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
Hi Uwe, I will add it to the Xtensa tree in the next couple of days (together with other patches that have piled up - still fighting a compiler issue). Thanks, -Chris Uwe Kleine-König wrote: > A pointer to xtsonic_probe is passed to the core via > platform_driver_register and so the function must not disappear when the > .init sections are discarded. Otherwise (if also having HOTPLUG=y) > unbinding and binding a device to the driver via sysfs will result in an > oops as does a device being registered late. > > An alternative to this patch is using platform_driver_probe instead of > platform_driver_register plus removing the pointer to the probe function > from the struct platform_driver. > > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> > Cc: Chris Zankel <chris@zankel.net> > > Cc: David S. Miller <davem@davemloft.net> > Cc: Andrew Morton <akpm@linux-foundation.org> > Cc: Greg Kroah-Hartman <gregkh@suse.de> > Cc: netdev@vger.kernel.org > > --- > drivers/net/xtsonic.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/drivers/net/xtsonic.c b/drivers/net/xtsonic.c > index 5a4ad15..0c44135 100644 > --- a/drivers/net/xtsonic.c > +++ b/drivers/net/xtsonic.c > @@ -239,7 +239,7 @@ out: > * Actually probing is superfluous but we're paranoid. > */ > > -int __init xtsonic_probe(struct platform_device *pdev) > +int __devinit xtsonic_probe(struct platform_device *pdev) > { > struct net_device *dev; > struct sonic_local *lp; > -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Applied. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/net/xtsonic.c b/drivers/net/xtsonic.c index 5a4ad15..0c44135 100644 --- a/drivers/net/xtsonic.c +++ b/drivers/net/xtsonic.c @@ -239,7 +239,7 @@ out: * Actually probing is superfluous but we're paranoid. */ -int __init xtsonic_probe(struct platform_device *pdev) +int __devinit xtsonic_probe(struct platform_device *pdev) { struct net_device *dev; struct sonic_local *lp;
A pointer to xtsonic_probe is passed to the core via platform_driver_register and so the function must not disappear when the .init sections are discarded. Otherwise (if also having HOTPLUG=y) unbinding and binding a device to the driver via sysfs will result in an oops as does a device being registered late. An alternative to this patch is using platform_driver_probe instead of platform_driver_register plus removing the pointer to the probe function from the struct platform_driver. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Cc: Chris Zankel <chris@zankel.net> Cc: David S. Miller <davem@davemloft.net> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Greg Kroah-Hartman <gregkh@suse.de> Cc: netdev@vger.kernel.org --- drivers/net/xtsonic.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)