summaryrefslogtreecommitdiff
path: root/source/components
diff options
context:
space:
mode:
authorRobert Moore <Robert.Moore@intel.com>2011-10-12 13:52:21 -0700
committerRobert Moore <Robert.Moore@intel.com>2011-10-12 13:52:21 -0700
commitf3863d6e5c8911a14c66a22dfe0501e3dc3fd7de (patch)
treedb572314a83ec426e6e322750b7519a25862e074 /source/components
parentccdeddbaf0e4a8f66c8071448ca79a9da774e031 (diff)
downloadacpica-f3863d6e5c8911a14c66a22dfe0501e3dc3fd7de.tar.gz
Fix to allow region arguments to reference other scopes.
Allow referenced objects to be in a different scope. Lin Ming.
Diffstat (limited to 'source/components')
-rw-r--r--source/components/dispatcher/dsargs.c2
-rw-r--r--source/components/executer/excreate.c8
2 files changed, 9 insertions, 1 deletions
diff --git a/source/components/dispatcher/dsargs.c b/source/components/dispatcher/dsargs.c
index 44cc41b33..878eb7473 100644
--- a/source/components/dispatcher/dsargs.c
+++ b/source/components/dispatcher/dsargs.c
@@ -496,7 +496,7 @@ AcpiDsGetRegionArguments (
/* Execute the argument AML */
- Status = AcpiDsExecuteArguments (Node, Node->Parent,
+ Status = AcpiDsExecuteArguments (Node, ExtraDesc->Extra.ScopeNode,
ExtraDesc->Extra.AmlLength, ExtraDesc->Extra.AmlStart);
return_ACPI_STATUS (Status);
}
diff --git a/source/components/executer/excreate.c b/source/components/executer/excreate.c
index a9b92c16f..f4b251481 100644
--- a/source/components/executer/excreate.c
+++ b/source/components/executer/excreate.c
@@ -426,6 +426,14 @@ AcpiExCreateRegion (
RegionObj2 = ObjDesc->Common.NextObject;
RegionObj2->Extra.AmlStart = AmlStart;
RegionObj2->Extra.AmlLength = AmlLength;
+ if (WalkState->ScopeInfo)
+ {
+ RegionObj2->Extra.ScopeNode = WalkState->ScopeInfo->Scope.Node;
+ }
+ else
+ {
+ RegionObj2->Extra.ScopeNode = Node;
+ }
/* Init the region from the operands */