ACPI: Execute _PRW for devices reported as inactive or not present
authorRafael J. Wysocki <rjw@sisk.pl>
Fri, 17 Dec 2010 21:34:01 +0000 (22:34 +0100)
committerLen Brown <len.brown@intel.com>
Fri, 17 Dec 2010 21:39:11 +0000 (16:39 -0500)
commitb581a7f9c3abc6c7afacd021747543d32ff17adb
treee62cdfdcbe11a8b644d60478f462d7af38bdbdf9
parentcf7d7e5a1980d1116ee152d25dac382b112b9c17
ACPI: Execute _PRW for devices reported as inactive or not present

If a device is reported as inactive or not present by its _STA
control method, acpi_bus_check_add() skips it without evaluating its
_PRW method.  This leads to a problem when the device's _PRW method
points to a GPE, because in that case the GPE may be enabled by
ACPICA during the subsequent acpi_update_gpes() call which, in
turn, may cause a GPE storm to appear.

To avoid this issue, make acpi_bus_check_add() evaluate _PRW for
inactive or not present devices and register the wakeup GPE
information returned by them, so that acpi_update_gpes() does not
enable their GPEs unnecessarily.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Reported-by: Matthew Garrett <mjg@redhat.com>
Signed-off-by: Len Brown <len.brown@intel.com>
drivers/acpi/scan.c