Revert "ACPICA: Namespace: Fix deadlock triggered by MLC support in dynamic table loading"
Revert commit2f38b1b16d
(ACPICA: Namespace: Fix deadlock triggered by MLC support in dynamic table loading) that attempted to fix a deadlock issue introduced by a previous commit, but it led to a lock ordering inconsistency that caused further problems to appear. Fixes:2f38b1b16d
(ACPICA: Namespace: Fix deadlock triggered by MLC support in dynamic table loading) Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
e8807e4470
commit
ffd8d61845
|
@ -108,9 +108,7 @@ acpi_ex_add_table(u32 table_index,
|
||||||
|
|
||||||
/* Add the table to the namespace */
|
/* Add the table to the namespace */
|
||||||
|
|
||||||
acpi_ex_exit_interpreter();
|
|
||||||
status = acpi_ns_load_table(table_index, parent_node);
|
status = acpi_ns_load_table(table_index, parent_node);
|
||||||
acpi_ex_enter_interpreter();
|
|
||||||
if (ACPI_FAILURE(status)) {
|
if (ACPI_FAILURE(status)) {
|
||||||
acpi_ut_remove_reference(obj_desc);
|
acpi_ut_remove_reference(obj_desc);
|
||||||
*ddb_handle = NULL;
|
*ddb_handle = NULL;
|
||||||
|
|
|
@ -47,7 +47,6 @@
|
||||||
#include "acparser.h"
|
#include "acparser.h"
|
||||||
#include "acdispat.h"
|
#include "acdispat.h"
|
||||||
#include "actables.h"
|
#include "actables.h"
|
||||||
#include "acinterp.h"
|
|
||||||
|
|
||||||
#define _COMPONENT ACPI_NAMESPACE
|
#define _COMPONENT ACPI_NAMESPACE
|
||||||
ACPI_MODULE_NAME("nsparse")
|
ACPI_MODULE_NAME("nsparse")
|
||||||
|
@ -171,8 +170,6 @@ acpi_ns_parse_table(u32 table_index, struct acpi_namespace_node *start_node)
|
||||||
|
|
||||||
ACPI_FUNCTION_TRACE(ns_parse_table);
|
ACPI_FUNCTION_TRACE(ns_parse_table);
|
||||||
|
|
||||||
acpi_ex_enter_interpreter();
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* AML Parse, pass 1
|
* AML Parse, pass 1
|
||||||
*
|
*
|
||||||
|
@ -188,7 +185,7 @@ acpi_ns_parse_table(u32 table_index, struct acpi_namespace_node *start_node)
|
||||||
status = acpi_ns_one_complete_parse(ACPI_IMODE_LOAD_PASS1,
|
status = acpi_ns_one_complete_parse(ACPI_IMODE_LOAD_PASS1,
|
||||||
table_index, start_node);
|
table_index, start_node);
|
||||||
if (ACPI_FAILURE(status)) {
|
if (ACPI_FAILURE(status)) {
|
||||||
goto error_exit;
|
return_ACPI_STATUS(status);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -204,10 +201,8 @@ acpi_ns_parse_table(u32 table_index, struct acpi_namespace_node *start_node)
|
||||||
status = acpi_ns_one_complete_parse(ACPI_IMODE_LOAD_PASS2,
|
status = acpi_ns_one_complete_parse(ACPI_IMODE_LOAD_PASS2,
|
||||||
table_index, start_node);
|
table_index, start_node);
|
||||||
if (ACPI_FAILURE(status)) {
|
if (ACPI_FAILURE(status)) {
|
||||||
goto error_exit;
|
return_ACPI_STATUS(status);
|
||||||
}
|
}
|
||||||
|
|
||||||
error_exit:
|
|
||||||
acpi_ex_exit_interpreter();
|
|
||||||
return_ACPI_STATUS(status);
|
return_ACPI_STATUS(status);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue