x86: move hp-wmi's probe function to .devinit.text
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@pengutronix.de> Cc: Frans Pop <elendil@planet.nl> Cc: Larry Finger <Larry.Finger@lwfinger.net> Cc: Len Brown <lenb@kernel.org> Cc: Helge Deller <deller@gmx.de> Cc: Andrew Morton <akpm@linux-foundation.org> Acked-by: Matthew Garrett <mjg@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
c2e13037e6
commit
ea79632d90
1 changed files with 2 additions and 2 deletions
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue