浏览代码

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>
Len Brown 18 年之前
父节点
当前提交
40d07080e5
共有 1 个文件被更改,包括 6 次插入5 次删除
  1. 6 5
      drivers/acpi/events/evmisc.c

+ 6 - 5
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.value = (u16) notify_value;
 		notify_info->notify.handler_obj = handler_obj;
 		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) {
 	if (!handler_obj) {