summaryrefslogtreecommitdiffstats
path: root/source/common/adwalk.c
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2013-11-15 20:40:27 +0000
committerjkim <jkim@FreeBSD.org>2013-11-15 20:40:27 +0000
commita1672476f94b0c9ac84a682574aeb1eb481c484c (patch)
tree393e1854c22739c2db6213f80e859a02e4223818 /source/common/adwalk.c
parentf4a31baa14e08b26c3b63f02571280c872cabe90 (diff)
downloadFreeBSD-src-a1672476f94b0c9ac84a682574aeb1eb481c484c.zip
FreeBSD-src-a1672476f94b0c9ac84a682574aeb1eb481c484c.tar.gz
Import ACPICA 20131115.
Diffstat (limited to 'source/common/adwalk.c')
-rw-r--r--source/common/adwalk.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/source/common/adwalk.c b/source/common/adwalk.c
index 2fb42fd..5b04859 100644
--- a/source/common/adwalk.c
+++ b/source/common/adwalk.c
@@ -820,17 +820,18 @@ AcpiDmXrefDescendingOp (
{
if (Status == AE_NOT_FOUND)
{
- AcpiDmAddToExternalList (Op, Path, (UINT8) ObjectType, 0);
-
/*
- * We could install this into the namespace, but we catch duplicate
- * externals when they are added to the list.
+ * Add this symbol as an external declaration, except if the
+ * parent is a CondRefOf operator. For this operator, we do not
+ * need an external, nor do we want one, since this can cause
+ * disassembly problems if the symbol is actually a control
+ * method.
*/
-#if 0
- Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ACPI_TYPE_ANY,
- ACPI_IMODE_LOAD_PASS1, ACPI_NS_DONT_OPEN_SCOPE,
- WalkState, &Node);
-#endif
+ if (!(Op->Asl.Parent &&
+ (Op->Asl.Parent->Asl.AmlOpcode == AML_COND_REF_OF_OP)))
+ {
+ AcpiDmAddToExternalList (Op, Path, (UINT8) ObjectType, 0);
+ }
}
}
OpenPOWER on IntegriCloud