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.to...@gmail.com>
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.to...@gmail.com>
---
 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

Reply via email to