kernel-ark/drivers/platform/x86
Alan Jenkins 7334546a52 eeepc-laptop: fix hot-unplug on resume
OOPS on resume when the wireless adaptor is disabled during suspend was
introduced by "eeepc-laptop: read rfkill soft-blocked state on resume".

Unable to handle kernel NULL pointer dereference

Process s2disk
Tainted: G W
IP: klist_put

Call trace:
? klist_del
? device_del
? device_unregister
? pci_stop_dev
? pci_stop_bus
? pci_remove_device
? eeepc_rfkill_hotplug [eeepc_laptop]
? eeepc_hotk_resume [eeepc_laptop]
? acpi_device_resume
? device_resume
? hibernation_snapshot

It appears the PCI device is removed twice.  The eeepc_rfkill_hotplug()
call from the resume handler is racing against the call from the ACPI
notifier callback.  The ACPI notification is triggered by the resume
handler when it refreshes the value of CM_ASL_WLAN.

The fix is to serialize hotplug calls using a workqueue.

http://bugzilla.kernel.org/show_bug.cgi?id=13825

Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
Acked-by: Corentin Chary <corentin.chary@gmail.com>
Signed-off-by: Len Brown <len.brown@intel.com>
2009-08-02 12:35:53 -04:00
..
acer-wmi.c acer-wmi: fix rfkill conversion 2009-07-21 15:58:54 -04:00
acerhdf.c acerhdf: Acer Aspire One fan control 2009-06-24 00:58:16 -04:00
asus_acpi.c ACPI: asus-acpi: use .notify method instead of installing handler directly 2009-06-18 00:13:15 -04:00
asus-laptop.c asus-laptop: use pr_fmt and pr_<level> 2009-06-24 01:31:38 -04:00
compal-laptop.c
dell-laptop.c dell-laptop: fix rfkill conversion 2009-06-15 15:05:58 -04:00
dell-wmi.c dell-wmi: don't generate errors on empty messages 2009-06-17 23:44:22 -04:00
eeepc-laptop.c eeepc-laptop: fix hot-unplug on resume 2009-08-02 12:35:53 -04:00
fujitsu-laptop.c fujitsu-laptop: use .notify method instead of installing hotkey handler directly 2009-04-07 16:26:58 -04:00
hp-wmi.c hp-wmi: fix rfkill bug 2009-07-07 12:55:27 -04:00
intel_menlow.c thermal: use integers rather than strings for thermal values 2009-02-20 10:52:37 -05:00
Kconfig eeepc-laptop: Fix build failure with HOTPLUG_PCI && !SYSFS 2009-06-29 09:40:38 -07:00
Makefile acerhdf: Acer Aspire One fan control 2009-06-24 00:58:16 -04:00
msi-laptop.c
panasonic-laptop.c Merge branches 'release', 'APERF', 'ARAT', 'misc', 'kelvin', 'device-lock' and 'bjorn.notify' into release 2009-04-07 18:18:42 -04:00
sony-laptop.c sony: fix rfkill code again 2009-06-15 15:05:51 -04:00
tc1100-wmi.c tc1100-wmi: Fix state reporting 2009-04-03 12:03:27 -04:00
thinkpad_acpi.c Merge branches 'acerhdf', 'acpi-pci-bind', 'bjorn-pci-root', 'bugzilla-12904', 'bugzilla-13121', 'bugzilla-13396', 'bugzilla-13533', 'bugzilla-13612', 'c3_lock', 'hid-cleanups', 'misc-2.6.31', 'pdc-leak-fix', 'pnpacpi', 'power_nocheck', 'thinkpad_acpi', 'video' and 'wmi' into release 2009-06-24 01:19:50 -04:00
toshiba_acpi.c rfkill: rewrite 2009-06-03 14:06:13 -04:00
wmi.c ACPI: WMI: use .notify method instead of installing handler directly 2009-04-07 16:26:58 -04:00