summaryrefslogtreecommitdiffstats
path: root/sys/contrib/dev/acpica/common/adisasm.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/contrib/dev/acpica/common/adisasm.c')
-rw-r--r--sys/contrib/dev/acpica/common/adisasm.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/sys/contrib/dev/acpica/common/adisasm.c b/sys/contrib/dev/acpica/common/adisasm.c
index 658b5be..5d0cee2 100644
--- a/sys/contrib/dev/acpica/common/adisasm.c
+++ b/sys/contrib/dev/acpica/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)
OpenPOWER on IntegriCloud