|
@@ -46,6 +46,7 @@
|
|
|
#include "acnamesp.h"
|
|
|
#include "acdispat.h"
|
|
|
#include "actables.h"
|
|
|
+#include "acinterp.h"
|
|
|
|
|
|
#define _COMPONENT ACPI_NAMESPACE
|
|
|
ACPI_MODULE_NAME("nsload")
|
|
@@ -78,20 +79,6 @@ acpi_ns_load_table(u32 table_index, struct acpi_namespace_node *node)
|
|
|
|
|
|
ACPI_FUNCTION_TRACE(ns_load_table);
|
|
|
|
|
|
- /*
|
|
|
- * 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 = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE);
|
|
|
- if (ACPI_FAILURE(status)) {
|
|
|
- return_ACPI_STATUS(status);
|
|
|
- }
|
|
|
-
|
|
|
/* If table already loaded into namespace, just return */
|
|
|
|
|
|
if (acpi_tb_is_table_loaded(table_index)) {
|
|
@@ -107,6 +94,15 @@ acpi_ns_load_table(u32 table_index, struct acpi_namespace_node *node)
|
|
|
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 = acpi_ns_parse_table(table_index, node);
|
|
|
if (ACPI_SUCCESS(status)) {
|
|
|
acpi_tb_set_table_loaded_flag(table_index, TRUE);
|
|
@@ -120,7 +116,6 @@ acpi_ns_load_table(u32 table_index, struct acpi_namespace_node *node)
|
|
|
* exist. This target of Scope must already exist in the
|
|
|
* namespace, as per the ACPI specification.
|
|
|
*/
|
|
|
- (void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
|
|
|
acpi_ns_delete_namespace_by_owner(acpi_gbl_root_table_list.
|
|
|
tables[table_index].owner_id);
|
|
|
|
|
@@ -129,8 +124,6 @@ acpi_ns_load_table(u32 table_index, struct acpi_namespace_node *node)
|
|
|
}
|
|
|
|
|
|
unlock:
|
|
|
- (void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
|
|
|
-
|
|
|
if (ACPI_FAILURE(status)) {
|
|
|
return_ACPI_STATUS(status);
|
|
|
}
|