diff options
author | Jung-uk Kim <jkim@FreeBSD.org> | 2010-12-09 20:04:14 +0000 |
---|---|---|
committer | Jung-uk Kim <jkim@FreeBSD.org> | 2010-12-09 20:04:14 +0000 |
commit | 0f70714e43f23ff5f3e72fa406814e26bdad006a (patch) | |
tree | c88f8fbca7e5c63afb07147d504c55311683cb5d /dispatcher/dswexec.c | |
parent | 11641cd290cbb4765d39dadd5a4eee278b8769ee (diff) |
Notes
Diffstat (limited to 'dispatcher/dswexec.c')
-rw-r--r-- | dispatcher/dswexec.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/dispatcher/dswexec.c b/dispatcher/dswexec.c index 3c1f85e261d1a..81267b500f8a2 100644 --- a/dispatcher/dswexec.c +++ b/dispatcher/dswexec.c @@ -400,10 +400,26 @@ AcpiDsExecBeginOp ( * 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 = AcpiDsLoad2BeginOp (WalkState, NULL); + if (Op->Common.AmlOpcode != AML_SCOPE_OP) + { + Status = AcpiDsLoad2BeginOp (WalkState, NULL); + } + else + { + Status = AcpiDsScopeStackPush (Op->Named.Node, + Op->Named.Node->Type, WalkState); + if (ACPI_FAILURE (Status)) + { + return_ACPI_STATUS (Status); + } + } } - break; |