[PATCH] Gracely handle GPE dispatch failure

From: H.J. Lu
Date: Thu Apr 16 2015 - 19:38:00 EST


When GPE dispatch fails due to missing handler, kernel issues

ACPI Error: No handler for Region
ACPI Error: Region EmbeddedControl
ACPI Error: Method parse/execution failed
ACPI Exception: AE_NOT_EXIST, while evaluating GPE method

and goes ahead enable GPE anyway. After that, kernel goes into an
infinite loop:

ACPI Error: No handler for Region
ACPI Error: Region EmbeddedControl
ACPI Error: Method parse/execution failed
ACPI Exception: AE_NOT_EXIST, while evaluating GPE method

and repeat. This patch avoids the infinite loop by not enabling GPE if
GPE dispatch fails.


--
H.J.
From e892b19f5100427b8c89a74186b90675141ceaab Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@xxxxxxxxx>
Date: Sat, 12 Nov 2011 11:03:38 -0800
Subject: [PATCH] Gracely handle GPE dispatch failure

When GPE dispatch fails due to missing handler, kernel issues

ACPI Error: No handler for Region
ACPI Error: Region EmbeddedControl
ACPI Error: Method parse/execution failed
ACPI Exception: AE_NOT_EXIST, while evaluating GPE method

and goes ahead enable GPE anyway. After that, kernel goes into an
infinite loop:

ACPI Error: No handler for Region
ACPI Error: Region EmbeddedControl
ACPI Error: Method parse/execution failed
ACPI Exception: AE_NOT_EXIST, while evaluating GPE method

and repeat. This patch avoids the infinite loop by not enabling GPE if
GPE dispatch fails.

Signed-off-by: H.J. Lu <hjl.tools@xxxxxxxxx>
---
drivers/acpi/acpica/evgpe.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/acpi/acpica/evgpe.c b/drivers/acpi/acpica/evgpe.c
index 5ed064e..ca1ec02 100644
--- a/drivers/acpi/acpica/evgpe.c
+++ b/drivers/acpi/acpica/evgpe.c
@@ -589,6 +589,7 @@ static void ACPI_SYSTEM_XFACE acpi_ev_asynch_execute_gpe_method(void *context)
acpi_ut_get_node_name(gpe_event_info->
dispatch.
method_node)));
+ return_VOID;
}
break;

--
1.9.3