linux/drivers/acpi
Lin Ming 2629484288 ACPICA: Fix issues/fault with automatic "serialized" method support
History: This support changes a method to "serialized" on the fly if the
method generates an AE_ALREADY_EXISTS error, indicating the possibility
that it cannot handle reentrancy.

This fix repairs a couple of issues seen in the field, especially on
machines with many cores.

1) Delete method children only upon the exit of the last thread, so
as to not delete objects out from under running threads.

2) Set the "serialized" bit for the method only upon the exit of the
last thread, so as to not cause deadlock when running threads attempt
to exit.

3) Cleanup the use of the AML "MethodFlags" and internal method flags
so that there is no longer any confustion between the two.

Reported-by: Dana Myers <dana.myers@oracle.com>
Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
2011-01-18 23:48:03 -05:00
..
acpica ACPICA: Fix issues/fault with automatic "serialized" method support 2011-01-18 23:48:03 -05:00
apei ACPI/HEST: adjust section selection 2010-12-11 02:01:48 -05:00
ac.c ACPI ac: update AC status upon sysfs query 2010-12-09 15:33:08 -05:00
acpi_memhotplug.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
acpi_pad.c Merge branch 'x86-idle-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-10-21 13:45:38 -07:00
atomicio.c ACPI, APEI, Fix acpi_pre_map() return value 2010-09-29 14:02:16 -04:00
battery.c Revert "ACPI battery: update status upon sysfs query" 2010-12-24 21:43:16 -05:00
blacklist.c Merge branch 'msi-dmi' into release 2010-10-08 22:37:46 -04:00
bus.c ACPI: install ACPI table handler before any dynamic tables being loaded 2010-10-26 04:55:29 -04:00
button.c ACPI/PNP: A HID value of an object never changes -> make it const 2010-10-01 19:28:51 -04:00
cm_sbs.c ACPI: Move definition of PREFIX from acpi_bus.h to internal..h 2009-08-28 19:57:27 -04:00
container.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
debugfs.c ACPI: debugfs custom_method open to non-root 2010-11-13 09:52:16 -08:00
dock.c ACPICA: Rename some function and variable names 2011-01-12 04:24:40 -05:00
ec_sys.c llseek: automatically add .llseek fop 2010-10-15 15:53:27 +02:00
ec.c ACPICA: Implicit notify support 2011-01-12 04:27:00 -05:00
event.c llseek: automatically add .llseek fop 2010-10-15 15:53:27 +02:00
fan.c ACPI fan: remove deprecated procfs I/F 2010-10-15 22:02:47 -04:00
glue.c ACPI: Add the check of ADR flag in course of finding ACPI handle for PCI device 2010-07-26 22:32:13 -04:00
hed.c ACPI Hardware Error Device (PNP0C33) support 2010-05-19 22:40:24 -04:00
internal.h Merge branch 'linus' into release 2010-08-15 01:06:31 -04:00
Kconfig Merge branch 'misc' into release 2010-10-26 14:51:00 -04:00
Makefile Merge branch 'linus' into release 2010-08-15 01:06:31 -04:00
numa.c gcc-4.6: ACPI: fix unused but set variables in ACPI 2010-08-15 00:53:08 -04:00
osl.c Merge branches 'bugzilla-15418', 'bugzilla-21722', 'bugzilla-22932', 'misc-2.6.37' and 'osi-regression' into release 2010-12-11 02:02:02 -05:00
pci_bind.c PCI / ACPI / PM: Platform support for PCI PME wake-up 2010-02-22 16:21:02 -08:00
pci_irq.c ACPI: remove unused declaration of proc_fs.h 2010-10-15 22:03:36 -04:00
pci_link.c ACPI: remove unused declaration of proc_fs.h 2010-10-15 22:03:36 -04:00
pci_root.c ACPI: remove unused declaration of proc_fs.h 2010-10-15 22:03:36 -04:00
pci_slot.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
power_meter.c power_meter: acpi_device_class "power_meter_resource" too long 2010-05-06 02:38:24 -04:00
power.c ACPI / PM: Do not refcount power resources that can't be turned on 2010-12-01 16:53:39 -05:00
proc.c ACPI: remove deprecated ACPI procfs I/F 2010-08-15 00:27:51 -04:00
processor_core.c Merge branch 'pdc-regression' into release 2010-10-08 22:35:02 -04:00
processor_driver.c Merge branch 'misc' into release 2010-10-26 14:51:00 -04:00
processor_idle.c Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2010-10-26 17:28:37 -07:00
processor_perflib.c ACPI: Fix typos 2010-09-28 21:38:19 -04:00
processor_thermal.c ACPI thermal: remove two unused functions 2010-12-11 02:01:47 -05:00
processor_throttling.c ACPI processor: make /proc/acpi/processor/*/throttle depends on CONFIG_ACPI_PROCFS 2010-10-15 22:03:17 -04:00
reboot.c ACPI: reboot.c: use new acpi_reset interface 2008-12-31 01:15:00 -05:00
sbs.c ACPI ac/battery/sbs: sysfs I/F always built in, procfs I/F disabled by default 2010-10-15 22:02:38 -04:00
sbshc.c sbshc: acpi_device_class "smbus_host_controller" too long 2010-05-06 02:38:25 -04:00
sbshc.h ACPI: SBS: Ignore alarms coming from unknown devices 2007-12-14 15:14:06 -05:00
scan.c ACPICA: Implicit notify support 2011-01-12 04:27:00 -05:00
sleep.c Merge branch 'bugzilla-23002' into release 2010-12-13 22:40:54 -05:00
sleep.h ACPI: static sleep_states[] and acpi_gts_bfs_check 2010-10-19 13:44:37 -04:00
sysfs.c ACPICA: Global event handler 2011-01-12 04:27:00 -05:00
tables.c ACPI: delete the "acpi=ht" boot option 2010-03-14 20:58:38 -04:00
thermal.c ACPI thermal: remove deprecated procfs I/F 2010-10-15 22:03:01 -04:00
utils.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
video_detect.c ACPI video: fix a poor warning message 2010-09-28 21:38:01 -04:00
video.c ACPI video: remove deprecated procfs I/F 2010-10-15 22:03:08 -04:00
wakeup.c ACPICA: Rename some function and variable names 2011-01-12 04:24:40 -05:00