From: William Morrow On some BIOSen, the GPE bit will remain set even if it is disabled, resulting in a interrupt storm. This patch clears the bit before disabling it. Signed-off-by: William Morrow Signed-off-by: Jordan Crouse Cc: "Yu, Luming" Cc: "Brown, Len" Cc: "Moore, Robert" Signed-off-by: Andrew Morton --- drivers/acpi/events/evgpe.c | 14 +++++++++++++- 1 files changed, 13 insertions(+), 1 deletion(-) diff -puN drivers/acpi/events/evgpe.c~acpi-clear-gpe-before-disabling-it drivers/acpi/events/evgpe.c --- a/drivers/acpi/events/evgpe.c~acpi-clear-gpe-before-disabling-it +++ a/drivers/acpi/events/evgpe.c @@ -677,10 +677,22 @@ acpi_ev_gpe_dispatch(struct acpi_gpe_eve case ACPI_GPE_DISPATCH_METHOD: /* - * Disable GPE, so it doesn't keep firing before the method has a + * Clear GPE, so it doesn't keep firing before the method has a * chance to run. */ + status = acpi_hw_clear_gpe(gpe_event_info); + if (ACPI_FAILURE(status)) { + ACPI_EXCEPTION((AE_INFO, status, + "Unable to clear GPE[%2X]", + gpe_number)); + return_UINT32(ACPI_INTERRUPT_NOT_HANDLED); + } + /* + * Disable GPE, so it doesn't keep happen again. + */ + status = acpi_ev_disable_gpe(gpe_event_info); + if (ACPI_FAILURE(status)) { ACPI_EXCEPTION((AE_INFO, status, "Unable to disable GPE[%2X]", _