Prev: [PATCH 06/62] sysdev: Convert node driver class attributes to be data driven
Next: [PATCH] Avoid implicit constant truncation
From: Greg Kroah-Hartman on 2 Mar 2010 19:00 From: Uwe Kleine-König <u.kleine-koenig(a)pengutronix.de> A pointer to hp_wmi_bios_setup 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(a)pengutronix.de> Cc: Frans Pop <elendil(a)planet.nl> Cc: Larry Finger <Larry.Finger(a)lwfinger.net> Cc: Len Brown <lenb(a)kernel.org> Cc: Helge Deller <deller(a)gmx.de> Cc: Andrew Morton <akpm(a)linux-foundation.org> Acked-by: Matthew Garrett <mjg(a)redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh(a)suse.de> --- drivers/platform/x86/hp-wmi.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/platform/x86/hp-wmi.c b/drivers/platform/x86/hp-wmi.c index 3aa57da..7ccf33c 100644 --- a/drivers/platform/x86/hp-wmi.c +++ b/drivers/platform/x86/hp-wmi.c @@ -57,7 +57,7 @@ enum hp_wmi_radio { HPWMI_WWAN = 2, }; -static int __init hp_wmi_bios_setup(struct platform_device *device); +static int __devinit hp_wmi_bios_setup(struct platform_device *device); static int __exit hp_wmi_bios_remove(struct platform_device *device); static int hp_wmi_resume_handler(struct device *device); @@ -447,7 +447,7 @@ static void cleanup_sysfs(struct platform_device *device) device_remove_file(&device->dev, &dev_attr_tablet); } -static int __init hp_wmi_bios_setup(struct platform_device *device) +static int __devinit hp_wmi_bios_setup(struct platform_device *device) { int err; int wireless = hp_wmi_perform_query(HPWMI_WIRELESS_QUERY, 0, 0); -- 1.7.0.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |