diff options
author | Jung-uk Kim <jkim@FreeBSD.org> | 2016-03-18 21:13:19 +0000 |
---|---|---|
committer | Jung-uk Kim <jkim@FreeBSD.org> | 2016-03-18 21:13:19 +0000 |
commit | 937fa60dd2f2b6264fb99f22b638190a3fef996b (patch) | |
tree | 0dc0bf084f8f2e8a00eec502c9893e78b5a4b088 /source/compiler/aslload.c | |
parent | 67ac2c42d552618270f8ba5431d63944a35a0ee7 (diff) |
Notes
Diffstat (limited to 'source/compiler/aslload.c')
-rw-r--r-- | source/compiler/aslload.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/source/compiler/aslload.c b/source/compiler/aslload.c index 955fd7f454a4..99ec1bfe06df 100644 --- a/source/compiler/aslload.c +++ b/source/compiler/aslload.c @@ -698,6 +698,25 @@ LdNamespace1Begin ( */ Status = AE_OK; } + else if ((Node->Flags & ANOBJ_IS_EXTERNAL) && + (Op->Asl.ParseOpcode == PARSEOP_EXTERNAL) && + (ObjectType == ACPI_TYPE_ANY)) + { + /* Allow update of externals of unknown type. */ + + if (AcpiNsOpensScope (ActualObjectType)) + { + Node->Type = (UINT8) ActualObjectType; + Status = AE_OK; + } + else + { + sprintf (MsgBuffer, "%s [%s]", Op->Asl.ExternalName, + AcpiUtGetTypeName (Node->Type)); + AslError (ASL_ERROR, ASL_MSG_SCOPE_TYPE, Op, MsgBuffer); + return_ACPI_STATUS (AE_OK); + } + } else { /* Valid error, object already exists */ |