diff options
Diffstat (limited to 'source/components/tables')
| -rw-r--r-- | source/components/tables/tbdata.c | 18 | ||||
| -rw-r--r-- | source/components/tables/tbinstal.c | 6 | ||||
| -rw-r--r-- | source/components/tables/tbxfload.c | 13 |
3 files changed, 23 insertions, 14 deletions
diff --git a/source/components/tables/tbdata.c b/source/components/tables/tbdata.c index 7f0286a8c5f6..61a2d340d56d 100644 --- a/source/components/tables/tbdata.c +++ b/source/components/tables/tbdata.c @@ -1190,12 +1190,18 @@ AcpiTbLoadTable ( Status = AcpiNsLoadTable (TableIndex, ParentNode); - /* Execute any module-level code that was found in the table */ - - if (!AcpiGbl_ParseTableAsTermList && AcpiGbl_GroupModuleLevelCode) - { - AcpiNsExecModuleCodeList (); - } + /* + * This case handles the legacy option that groups all module-level + * code blocks together and defers execution until all of the tables + * are loaded. Execute all of these blocks at this time. + * Execute any module-level code that was detected during the table + * load phase. + * + * Note: this option is deprecated and will be eliminated in the + * future. Use of this option can cause problems with AML code that + * depends upon in-order immediate execution of module-level code. + */ + AcpiNsExecModuleCodeList (); /* * Update GPEs for any new _Lxx/_Exx methods. Ignore errors. The host is diff --git a/source/components/tables/tbinstal.c b/source/components/tables/tbinstal.c index e5d5692c8f8c..639448031083 100644 --- a/source/components/tables/tbinstal.c +++ b/source/components/tables/tbinstal.c @@ -356,11 +356,11 @@ AcpiTbOverrideTable ( ACPI_TABLE_DESC *OldTableDesc) { ACPI_STATUS Status; - char *OverrideType; ACPI_TABLE_DESC NewTableDesc; ACPI_TABLE_HEADER *Table; ACPI_PHYSICAL_ADDRESS Address; UINT32 Length; + ACPI_ERROR_ONLY (char *OverrideType); /* (1) Attempt logical override (returns a logical address) */ @@ -370,7 +370,7 @@ AcpiTbOverrideTable ( { AcpiTbAcquireTempTable (&NewTableDesc, ACPI_PTR_TO_PHYSADDR (Table), ACPI_TABLE_ORIGIN_EXTERNAL_VIRTUAL); - OverrideType = "Logical"; + ACPI_ERROR_ONLY (OverrideType = "Logical"); goto FinishOverride; } @@ -382,7 +382,7 @@ AcpiTbOverrideTable ( { AcpiTbAcquireTempTable (&NewTableDesc, Address, ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL); - OverrideType = "Physical"; + ACPI_ERROR_ONLY (OverrideType = "Physical"); goto FinishOverride; } diff --git a/source/components/tables/tbxfload.c b/source/components/tables/tbxfload.c index 7103f4a992d3..0119b684579f 100644 --- a/source/components/tables/tbxfload.c +++ b/source/components/tables/tbxfload.c @@ -219,13 +219,16 @@ AcpiLoadTables ( "While loading namespace from ACPI tables")); } - if (AcpiGbl_ParseTableAsTermList || !AcpiGbl_GroupModuleLevelCode) + if (AcpiGbl_ExecuteTablesAsMethods || !AcpiGbl_GroupModuleLevelCode) { /* - * Initialize the objects that remain uninitialized. This - * runs the executable AML that may be part of the - * declaration of these objects: - * OperationRegions, BufferFields, Buffers, and Packages. + * If the module-level code support is enabled, initialize the objects + * in the namespace that remain uninitialized. This runs the executable + * AML that may be part of the declaration of these name objects: + * OperationRegions, BufferFields, Buffers, and Packages. + * + * Note: The module-level code is optional at this time, but will + * become the default in the future. */ Status = AcpiNsInitializeObjects (); if (ACPI_FAILURE (Status)) |
