summaryrefslogtreecommitdiffstats
path: root/drivers/acpi/events
diff options
context:
space:
mode:
authorLen Brown <len.brown@intel.com>2007-05-10 04:59:38 +0200
committerLen Brown <len.brown@intel.com>2007-05-10 04:59:38 +0200
commit40d07080e585396dc58bc64befa1de0695318b3b (patch)
tree41a32892efab0b10801cd61a37a9ec707f9044fd /drivers/acpi/events
parentRevert "ACPICA: revert "acpi_serialize" changes" (diff)
downloadlinux-40d07080e585396dc58bc64befa1de0695318b3b.tar.xz
linux-40d07080e585396dc58bc64befa1de0695318b3b.zip
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')
-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) {