linux/drivers/acpi
Rafael J. Wysocki 7bed50c5ed ACPI / PM: Avoid infinite recurrence while registering power resources
There is at least one BIOS with a DSDT containing a power resource
object with a _PR0 entry pointing back to that power resource.  In
consequence, while registering that power resource
acpi_bus_get_power_flags() sees that it depends on itself and tries
to register it again, which leads to an infinitely deep recurrence.
This problem was introduced by commit bf325f9538
(ACPI / PM: Register power resource devices as soon as they are
needed).

To fix this problem use the observation that power resources cannot
be power manageable and prevent acpi_bus_get_power_flags() from
being called for power resource objects.

References: https://bugzilla.kernel.org/show_bug.cgi?id=31872
Reported-and-tested-by: Pascal Dormeau <pdormeau@free.fr>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Len Brown <lenb@kernel.org>
Cc: stable@kernel.org
2011-04-26 11:33:18 +02:00
..
acpica Merge branch 'reset' into release 2011-03-23 02:34:15 -04:00
apei Fix common misspellings 2011-03-31 11:26:23 -03:00
ac.c
acpi_ipmi.c
acpi_memhotplug.c
acpi_pad.c ACPI: minor printk format change in acpi_pad 2011-03-23 01:36:45 -04:00
atomicio.c
battery.c ACPI battery: fribble sysfs files from a resume notifier 2011-03-22 23:30:31 -04:00
blacklist.c
bus.c PM: Drop pm_flags that is not necessary 2011-03-15 00:43:16 +01:00
button.c ACPI button: remove unused procfs I/F 2011-03-22 23:20:35 -04:00
cm_sbs.c
container.c
debugfs.c ACPI / debugfs: Fix buffer overflows, double free 2011-02-24 19:59:06 +01:00
dock.c
ec_sys.c ACPI: Remove the unused EC sysdev class 2011-03-18 18:22:20 -04:00
ec.c
event.c
fan.c
glue.c
hed.c
internal.h ACPI: Remove the unused EC sysdev class 2011-03-18 18:22:20 -04:00
Kconfig PM / ACPI: Remove references to pm_flags from bus.c 2011-03-15 00:43:15 +01:00
Makefile
numa.c x86-64, NUMA: Unify {acpi|amd}_{numa_init|scan_nodes}() arguments and return values 2011-02-16 12:13:06 +01:00
nvs.c ACPI / PM: Use existing ACPI iomaps for NVS save/restore (v2) 2011-02-24 19:58:42 +01:00
osl.c Merge branch 'linus' into release 2011-03-23 02:34:54 -04:00
pci_bind.c
pci_irq.c
pci_link.c ACPI: Use syscore_ops instead of sysdev class and sysdev 2011-03-18 18:22:21 -04:00
pci_root.c PCI: Disable ASPM when _OSC control is not granted for PCIe services 2011-03-21 09:41:08 -07:00
pci_slot.c
power_meter.c
power.c
proc.c
processor_core.c ACPI: use __cpuinit for the acpi_processor_set_pdc() call tree 2011-03-02 20:58:20 -05:00
processor_driver.c ACPI: use __init where possible in processor driver 2011-03-02 20:56:53 -05:00
processor_idle.c
processor_perflib.c
processor_thermal.c
processor_throttling.c Fix common misspellings 2011-03-31 11:26:23 -03:00
reboot.c ACPI: Make sure the FADT is at least rev 2 before using the reset register 2011-03-22 23:52:49 -04:00
sbs.c
sbshc.c
sbshc.h
scan.c ACPI / PM: Avoid infinite recurrence while registering power resources 2011-04-26 11:33:18 +02:00
sleep.c Merge branch 'linus' into release 2011-03-23 02:34:54 -04:00
sleep.h
sysfs.c
tables.c
thermal.c
utils.c
video_detect.c ACPI / Video: Probe for output switch method when searching video devices. 2011-02-12 01:40:16 +01:00
video.c Fix common misspellings 2011-03-31 11:26:23 -03:00
wakeup.c ACPI / Wakeup: Enable button GPEs unconditionally during initialization 2011-02-12 01:39:53 +01:00