OpenCloudOS-Kernel/drivers/acpi
Arjan van de Ven 23d0a65cf2 toshiba_acpi: close race in toshiba_acpi driver
the toshiba ACPI driver will, in a failure case, free the rfkill state
before stopping the polling timer that would use this state. More interesting,
in the same failure case handling, it calls the exit function, which also
frees the rfkill state, but after stopping the polling.

If the race happens, a NULL pointer is passed to rfkill_force_state()
which then causes a nice dereference.

Fix the race by just not doing the too-early freeing of the rfkill state.

This appears to be the cause of a hot issue on kerneloops.org; while I
have no solid evidence of that this patch will fix the issue, the race
appears rather real.

Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
2008-11-28 14:21:53 -05:00
..
dispatcher ACPICA: Fix for implicit return compatibility 2008-10-22 23:14:49 -04:00
events Merge branch 'ec' into release 2008-11-11 21:17:26 -05:00
executer ACPICA: Add support for zero-length buffer-to-string conversions 2008-10-22 23:14:50 -04:00
hardware ACPI suspend: Always use the 32-bit waking vector 2008-10-16 20:45:35 -04:00
namespace ACPICA: New: Validation for predefined ACPI methods/objects 2008-10-22 23:14:49 -04:00
parser ACPICA: Fixed a couple memory leaks associated with "implicit return" 2008-10-22 23:14:48 -04:00
resources ACPICA: Cleanup for internal Reference Object 2008-10-22 23:14:45 -04:00
sleep ACPI suspend: Blacklist boxes that require us to set SCI_EN directly on resume 2008-11-26 17:53:13 -05:00
tables ACPI: use macro to replace hard number 2008-11-06 21:51:02 -05:00
utilities ACPICA: Optimize buffer allocation procedure 2008-10-22 23:14:48 -04:00
Kconfig ACPI: update debug parameter documentation 2008-11-07 21:45:29 -05:00
Makefile Merge branch 'video' into release 2008-11-11 21:15:50 -05:00
ac.c Merge branch 'sysfs' into release 2008-11-11 21:14:49 -05:00
acpi_memhotplug.c ACPI: consolidate ACPI_*_COMPONENT definitions in acpi_drivers.h 2008-11-07 21:44:37 -05:00
asus_acpi.c Merge branch 'ull' into test 2008-10-22 23:33:29 -04:00
battery.c ACPI: battery: Convert discharge energy rate to current properly 2008-11-26 17:23:10 -05:00
blacklist.c ACPI: delete OSI(Linux) DMI dmesg spam 2008-11-27 01:55:21 -05:00
bus.c ACPI: turn off all debug output by default 2008-11-07 21:45:16 -05:00
button.c Merge branch 'ec' into release 2008-11-11 21:17:26 -05:00
cm_sbs.c ACPI: consolidate ACPI_*_COMPONENT definitions in acpi_drivers.h 2008-11-07 21:44:37 -05:00
container.c ACPI: consolidate ACPI_*_COMPONENT definitions in acpi_drivers.h 2008-11-07 21:44:37 -05:00
debug.c ACPI: add driver component definitions to sysfs debug_layers 2008-11-07 21:45:04 -05:00
dock.c Merge branch 'ull' into test 2008-10-22 23:33:29 -04:00
ec.c ACPI: EC: count interrupts only if called from interrupt handler. 2008-11-26 17:16:45 -05:00
event.c acpi: use non-racy method for proc entries creation 2008-04-29 08:06:22 -07:00
fan.c ACPI: consolidate ACPI_*_COMPONENT definitions in acpi_drivers.h 2008-11-07 21:44:37 -05:00
glue.c ACPI: video: Ignore devices that aren't present in hardware 2008-11-07 23:49:23 -05:00
numa.c ACPI: Change acpi_evaluate_integer to support 64-bit on 32-bit kernels 2008-10-11 02:47:33 -04:00
osl.c ACPI: delete OSI(Linux) DMI dmesg spam 2008-11-27 01:55:21 -05:00
pci_bind.c ACPI: misc cleanups 2008-02-07 03:33:23 -05:00
pci_irq.c ACPI: use dev_printk when possible 2008-07-16 23:27:07 +02:00
pci_link.c ACPI: pci_link: remove acpi_irq_balance_set() interface 2008-11-11 21:12:05 -05:00
pci_root.c ACPI: remove comments about debug layer/level to use 2008-11-06 15:30:19 -05:00
pci_slot.c Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2008-10-23 10:20:36 -07:00
power.c Merge branch 'power' into release 2008-11-11 21:14:15 -05:00
processor_core.c Merge branch 'processor-256' into release 2008-11-11 21:17:03 -05:00
processor_idle.c ACPI: consolidate ACPI_*_COMPONENT definitions in acpi_drivers.h 2008-11-07 21:44:37 -05:00
processor_perflib.c ACPI: consolidate ACPI_*_COMPONENT definitions in acpi_drivers.h 2008-11-07 21:44:37 -05:00
processor_thermal.c ACPI: consolidate ACPI_*_COMPONENT definitions in acpi_drivers.h 2008-11-07 21:44:37 -05:00
processor_throttling.c ACPI: consolidate ACPI_*_COMPONENT definitions in acpi_drivers.h 2008-11-07 21:44:37 -05:00
reboot.c Revert "ACPI: Ingore the RESET_REG_SUP bit when using ACPI reset mechanism" 2008-11-06 20:51:59 -05:00
sbs.c Merge branch 'linus' into test 2008-10-23 00:11:07 -04:00
sbshc.c Merge branch 'ull' into test 2008-10-22 23:33:29 -04:00
sbshc.h ACPI: SBS: Ignore alarms coming from unknown devices 2007-12-14 15:14:06 -05:00
scan.c Revert "ACPI: don't enable control method power button as wakeup device when Fixed Power button is used" 2008-11-26 17:55:15 -05:00
system.c Merge branch 'ec' into release 2008-11-11 21:17:26 -05:00
tables.c acpi: add checking for NULL early param 2008-08-21 08:45:39 +02:00
thermal.c Merge branch 'sysfs' into release 2008-11-11 21:14:49 -05:00
toshiba_acpi.c toshiba_acpi: close race in toshiba_acpi driver 2008-11-28 14:21:53 -05:00
utils.c ACPI: scheduling in atomic via acpi_evaluate_integer () 2008-11-26 17:39:06 -05:00
video.c Merge branch 'video' into release 2008-11-11 21:15:50 -05:00
video_detect.c Merge branch 'video' into release 2008-11-11 21:15:50 -05:00
wmi.c ACPI: struct device - replace bus_id with dev_name(), dev_set_name() 2008-11-06 21:37:19 -05:00