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

Commit ed13fbbf authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull ACPI fix from Rafael Wysocki:
 "Stable-candidate fix for a deadlock in ACPICA introduced during the
  4.5 development cycle by a commit attempting to improve the handling
  of AML code that doesn't belong to any namespace objects in a given
  definition block (Lv Zheng)"

* tag 'acpi-4.7-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
  ACPICA: Namespace: Fix deadlock triggered by MLC support in dynamic table loading
parents 3522b35c 2605b981
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -108,7 +108,9 @@ acpi_ex_add_table(u32 table_index,

	/* Add the table to the namespace */

	acpi_ex_exit_interpreter();
	status = acpi_ns_load_table(table_index, parent_node);
	acpi_ex_enter_interpreter();
	if (ACPI_FAILURE(status)) {
		acpi_ut_remove_reference(obj_desc);
		*ddb_handle = NULL;
+7 −2
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@
#include "acparser.h"
#include "acdispat.h"
#include "actables.h"
#include "acinterp.h"

#define _COMPONENT          ACPI_NAMESPACE
ACPI_MODULE_NAME("nsparse")
@@ -170,6 +171,8 @@ acpi_ns_parse_table(u32 table_index, struct acpi_namespace_node *start_node)

	ACPI_FUNCTION_TRACE(ns_parse_table);

	acpi_ex_enter_interpreter();

	/*
	 * AML Parse, pass 1
	 *
@@ -185,7 +188,7 @@ acpi_ns_parse_table(u32 table_index, struct acpi_namespace_node *start_node)
	status = acpi_ns_one_complete_parse(ACPI_IMODE_LOAD_PASS1,
					    table_index, start_node);
	if (ACPI_FAILURE(status)) {
		return_ACPI_STATUS(status);
		goto error_exit;
	}

	/*
@@ -201,8 +204,10 @@ acpi_ns_parse_table(u32 table_index, struct acpi_namespace_node *start_node)
	status = acpi_ns_one_complete_parse(ACPI_IMODE_LOAD_PASS2,
					    table_index, start_node);
	if (ACPI_FAILURE(status)) {
		return_ACPI_STATUS(status);
		goto error_exit;
	}

error_exit:
	acpi_ex_exit_interpreter();
	return_ACPI_STATUS(status);
}