summaryrefslogtreecommitdiffstats
path: root/dispatcher/dsobject.c
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2010-07-06 17:18:05 +0000
committerjkim <jkim@FreeBSD.org>2010-07-06 17:18:05 +0000
commit9ef1b91c0f59a1a15565c354b3e372ab265c7b5a (patch)
tree514e3ade7be23ac83127870abf009b5e5ae1d36f /dispatcher/dsobject.c
parentd54ec0eced2867779a0ed7f3c8043be7a3325934 (diff)
downloadFreeBSD-src-9ef1b91c0f59a1a15565c354b3e372ab265c7b5a.zip
FreeBSD-src-9ef1b91c0f59a1a15565c354b3e372ab265c7b5a.tar.gz
Import ACPICA 20100702.
Diffstat (limited to 'dispatcher/dsobject.c')
-rw-r--r--dispatcher/dsobject.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/dispatcher/dsobject.c b/dispatcher/dsobject.c
index 3d8fce4..9963bd3 100644
--- a/dispatcher/dsobject.c
+++ b/dispatcher/dsobject.c
@@ -159,6 +159,7 @@ AcpiDsBuildInternalObject (
{
ACPI_OPERAND_OBJECT *ObjDesc;
ACPI_STATUS Status;
+ ACPI_OBJECT_TYPE Type;
ACPI_FUNCTION_TRACE (DsBuildInternalObject);
@@ -241,7 +242,20 @@ AcpiDsBuildInternalObject (
return_ACPI_STATUS (Status);
}
- switch (Op->Common.Node->Type)
+ /*
+ * Special handling for Alias objects. We need to setup the type
+ * and the Op->Common.Node to point to the Alias target. Note,
+ * Alias has at most one level of indirection internally.
+ */
+ Type = Op->Common.Node->Type;
+ if (Type == ACPI_TYPE_LOCAL_ALIAS)
+ {
+ Type = ObjDesc->Common.Type;
+ Op->Common.Node = ACPI_CAST_PTR (ACPI_NAMESPACE_NODE,
+ Op->Common.Node->Object);
+ }
+
+ switch (Type)
{
/*
* For these types, we need the actual node, not the subobject.
OpenPOWER on IntegriCloud