diff options
author | Len Brown <len.brown@intel.com> | 2010-10-25 02:10:36 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2010-10-25 02:10:36 -0400 |
commit | aca209e5e654951a3a90f5aaa8e04e0c470993b4 (patch) | |
tree | 5de472175d8edcbdf7a98022af7bf650bde761e9 /drivers/acpi/acpica/dswexec.c | |
parent | f6f94e2ab1b33f0082ac22d71f66385a60d8157f (diff) | |
parent | 8df3fc981dc12d9fdcaef4100a2193b605024d7a (diff) |
Merge branch 'acpica' into release
Conflicts:
drivers/acpi/acpica/aclocal.h
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/acpica/dswexec.c')
-rw-r--r-- | drivers/acpi/acpica/dswexec.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/drivers/acpi/acpica/dswexec.c b/drivers/acpi/acpica/dswexec.c index d555b374e31..6b0b5d08d97 100644 --- a/drivers/acpi/acpica/dswexec.c +++ b/drivers/acpi/acpica/dswexec.c @@ -300,10 +300,25 @@ acpi_ds_exec_begin_op(struct acpi_walk_state *walk_state, * we must enter this object into the namespace. The created * object is temporary and will be deleted upon completion of * the execution of this method. + * + * Note 10/2010: Except for the Scope() op. This opcode does + * not actually create a new object, it refers to an existing + * object. However, for Scope(), we want to indeed open a + * new scope. */ - status = acpi_ds_load2_begin_op(walk_state, NULL); + if (op->common.aml_opcode != AML_SCOPE_OP) { + status = + acpi_ds_load2_begin_op(walk_state, NULL); + } else { + status = + acpi_ds_scope_stack_push(op->named.node, + op->named.node-> + type, walk_state); + if (ACPI_FAILURE(status)) { + return_ACPI_STATUS(status); + } + } } - break; case AML_CLASS_EXECUTE: |