aboutsummaryrefslogtreecommitdiff
path: root/source/components/tables
diff options
context:
space:
mode:
Diffstat (limited to 'source/components/tables')
-rw-r--r--source/components/tables/tbdata.c18
-rw-r--r--source/components/tables/tbinstal.c6
-rw-r--r--source/components/tables/tbxfload.c13
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))