From: Len Brown Date: Thu, 10 May 2007 02:59:38 +0000 (-0400) Subject: Revert "Execute AML Notify() requests on stack." X-Git-Tag: v2.6.22-rc1~110^2~4^2~2 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=40d07080e585396dc58bc64befa1de0695318b3b;p=linux-2.6 Revert "Execute AML Notify() requests on stack." This reverts commit 5f7748cf91558a5026ded5be93c5bf6c1ac34edf. While that change fixed the HP http://bugzilla.kernel.org/show_bug.cgi?id=5534 it broke the ACER: http://bugzilla.kernel.org/show_bug.cgi?id=8385 which as AML that caused Linux go recursive and stack fault. So this commit by itself will restore the ACER and again break the HP, which we'll fix another way. Signed-off-by: Len Brown --- diff --git a/drivers/acpi/events/evmisc.c b/drivers/acpi/events/evmisc.c index 3a799b9b5d..ad447b1d97 100644 --- a/drivers/acpi/events/evmisc.c +++ b/drivers/acpi/events/evmisc.c @@ -196,11 +196,12 @@ acpi_ev_queue_notify_request(struct acpi_namespace_node * node, notify_info->notify.value = (u16) notify_value; notify_info->notify.handler_obj = handler_obj; - acpi_ex_relinquish_interpreter(); - - acpi_ev_notify_dispatch(notify_info); - - acpi_ex_reacquire_interpreter(); + status = + acpi_os_execute(OSL_NOTIFY_HANDLER, acpi_ev_notify_dispatch, + notify_info); + if (ACPI_FAILURE(status)) { + acpi_ut_delete_generic_state(notify_info); + } } if (!handler_obj) {