summaryrefslogtreecommitdiff
path: root/source/common/adisasm.c
diff options
context:
space:
mode:
authorJung-uk Kim <jkim@FreeBSD.org>2015-05-18 23:17:05 +0000
committerJung-uk Kim <jkim@FreeBSD.org>2015-05-18 23:17:05 +0000
commit615eb2945402758f050f1cb469181d3d22a22aa3 (patch)
tree0f95f8242a48aa24d8a795f626766746819b5227 /source/common/adisasm.c
parent2a91972d59fb9df39eae760a853d6f5bc4065cf0 (diff)
Notes
Diffstat (limited to 'source/common/adisasm.c')
-rw-r--r--source/common/adisasm.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/source/common/adisasm.c b/source/common/adisasm.c
index b04a352dddd9..a092923ed27b 100644
--- a/source/common/adisasm.c
+++ b/source/common/adisasm.c
@@ -214,6 +214,7 @@ AdAmlDisassemble (
char **OutFilename)
{
ACPI_STATUS Status;
+ ACPI_STATUS GlobalStatus = AE_OK;
char *DisasmFilename = NULL;
char *ExternalFilename;
ACPI_EXTERNAL_FILE *ExternalFileList = AcpiGbl_ExternalFileList;
@@ -229,7 +230,7 @@ AdAmlDisassemble (
*/
if (Filename)
{
- Status = AcpiDbGetTableFromFile (Filename, &Table);
+ Status = AcpiDbGetTableFromFile (Filename, &Table, FALSE);
if (ACPI_FAILURE (Status))
{
return (Status);
@@ -250,9 +251,16 @@ AdAmlDisassemble (
continue;
}
- Status = AcpiDbGetTableFromFile (ExternalFilename, &ExternalTable);
+ Status = AcpiDbGetTableFromFile (ExternalFilename, &ExternalTable, TRUE);
if (ACPI_FAILURE (Status))
{
+ if (Status == AE_TYPE)
+ {
+ ExternalFileList = ExternalFileList->Next;
+ GlobalStatus = AE_TYPE;
+ Status = AE_OK;
+ continue;
+ }
return (Status);
}
@@ -282,6 +290,11 @@ AdAmlDisassemble (
ExternalFileList = ExternalFileList->Next;
}
+ if (ACPI_FAILURE (GlobalStatus))
+ {
+ return (GlobalStatus);
+ }
+
/* Clear external list generated by Scope in external tables */
if (AcpiGbl_ExternalFileList)