Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ffd8d618 authored by Rafael J. Wysocki's avatar Rafael J. Wysocki
Browse files

Revert "ACPICA: Namespace: Fix deadlock triggered by MLC support in dynamic table loading"



Revert commit 2f38b1b1 (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: 2f38b1b1 (ACPICA: Namespace: Fix deadlock triggered by MLC support in dynamic table loading)
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent e8807e44
Loading
Loading
Loading
Loading
+0 −2
Original line number Original line Diff line number Diff line
@@ -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;
+2 −7
Original line number Original line Diff line number Diff line
@@ -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);
}
}