summaryrefslogtreecommitdiff
path: root/drivers/acpi/events/evmisc.c
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 /drivers/acpi/events/evmisc.c
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>
Diffstat (limited to 'drivers/acpi/events/evmisc.c')
-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 3a799b9b5df5..ad447b1d97a3 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) {