diff options
Diffstat (limited to 'source/components/namespace/nsload.c')
-rw-r--r-- | source/components/namespace/nsload.c | 30 |
1 files changed, 11 insertions, 19 deletions
diff --git a/source/components/namespace/nsload.c b/source/components/namespace/nsload.c index 9c899e784619..6e11d6b70624 100644 --- a/source/components/namespace/nsload.c +++ b/source/components/namespace/nsload.c @@ -46,6 +46,7 @@ #include "acnamesp.h" #include "acdispat.h" #include "actables.h" +#include "acinterp.h" #define _COMPONENT ACPI_NAMESPACE @@ -89,21 +90,6 @@ AcpiNsLoadTable ( ACPI_FUNCTION_TRACE (NsLoadTable); - /* - * Parse the table and load the namespace with all named - * objects found within. Control methods are NOT parsed - * at this time. In fact, the control methods cannot be - * parsed until the entire namespace is loaded, because - * if a control method makes a forward reference (call) - * to another control method, we can't continue parsing - * because we don't know how many arguments to parse next! - */ - Status = AcpiUtAcquireMutex (ACPI_MTX_NAMESPACE); - if (ACPI_FAILURE (Status)) - { - return_ACPI_STATUS (Status); - } - /* If table already loaded into namespace, just return */ if (AcpiTbIsTableLoaded (TableIndex)) @@ -121,6 +107,15 @@ AcpiNsLoadTable ( goto Unlock; } + /* + * Parse the table and load the namespace with all named + * objects found within. Control methods are NOT parsed + * at this time. In fact, the control methods cannot be + * parsed until the entire namespace is loaded, because + * if a control method makes a forward reference (call) + * to another control method, we can't continue parsing + * because we don't know how many arguments to parse next! + */ Status = AcpiNsParseTable (TableIndex, Node); if (ACPI_SUCCESS (Status)) { @@ -137,7 +132,6 @@ AcpiNsLoadTable ( * exist. This target of Scope must already exist in the * namespace, as per the ACPI specification. */ - (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); AcpiNsDeleteNamespaceByOwner ( AcpiGbl_RootTableList.Tables[TableIndex].OwnerId); @@ -146,8 +140,6 @@ AcpiNsLoadTable ( } Unlock: - (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); - if (ACPI_FAILURE (Status)) { return_ACPI_STATUS (Status); @@ -180,7 +172,7 @@ Unlock: * other ACPI implementations. Optionally, the execution can be deferred * until later, see AcpiInitializeObjects. */ - if (!AcpiGbl_GroupModuleLevelCode) + if (!AcpiGbl_ParseTableAsTermList && !AcpiGbl_GroupModuleLevelCode) { AcpiNsExecModuleCodeList (); } |