ACPI: disable stray GPE, prevent ACPI interrupt storm
authorZhang Rui <rui.zhang@intel.com>
Tue, 20 Nov 2007 18:38:59 +0000 (13:38 -0500)
committerLen Brown <len.brown@intel.com>
Tue, 20 Nov 2007 18:42:03 +0000 (13:42 -0500)
commita7f9b1f24974da287771e2d70b30d9ca7bd66684
treea09e2e675c33906619c80ade04a6a76c13c99566
parent2ffbb8377c7a0713baf6644e285adc27a5654582
ACPI: disable stray GPE, prevent ACPI interrupt storm

GPEs are disabled depending on their type --
WAKE, WAKE_RUN, and RUNTIME.  An error is returned
if we are asked to disable a GPE that has no type.

But at least one system exists that enables a GPE from AML
that is not the EC GPE, and has no _Lxx/_Exx AML handler,
and is thus never initialized.

In this case, when an external CRT is plugged in,
the GPE fires, we attempt to disable the GPE,
but instead just return an error.
So the GPE stays asserted and an ACPI interrupt storm follows.

The fix is to disable a firing GPE,
even if it comes from outer space.

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

Signed-off-by: Zhang Rui <rui.zhang@intel.com>
Acked-by: Alexey Starikovskiy <astarikovskiy@suse.de>
Signed-off-by: Len Brown <len.brown@intel.com>
drivers/acpi/events/evgpe.c