aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLen Brown <len.brown@intel.com>2007-05-09 22:59:38 -0400
committerLen Brown <len.brown@intel.com>2007-05-09 22:59:38 -0400
commit40d07080e585396dc58bc64befa1de0695318b3b (patch)
tree41a32892efab0b10801cd61a37a9ec707f9044fd
parent4d2acd9ea539e0f59178b126f6750ccc41eefcdd (diff)
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 <len.brown@intel.com>
-rw-r--r--drivers/acpi/events/evmisc.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/acpi/events/evmisc.c b/drivers/acpi/events/evmisc.c
index 3a799b9b5df..ad447b1d97a 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) {