diff options
Diffstat (limited to 'modules/hardware/t100ha/revert-fix-acpica-namespace-interpreter-lock.patch')
-rw-r--r-- | modules/hardware/t100ha/revert-fix-acpica-namespace-interpreter-lock.patch | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/modules/hardware/t100ha/revert-fix-acpica-namespace-interpreter-lock.patch b/modules/hardware/t100ha/revert-fix-acpica-namespace-interpreter-lock.patch new file mode 100644 index 00000000..1630d883 --- /dev/null +++ b/modules/hardware/t100ha/revert-fix-acpica-namespace-interpreter-lock.patch @@ -0,0 +1,81 @@ +diff --git b/drivers/acpi/acpica/nsload.c a/drivers/acpi/acpica/nsload.c +index 297f6aa..b5e2b0a 100644 +--- b/drivers/acpi/acpica/nsload.c ++++ a/drivers/acpi/acpica/nsload.c +@@ -46,7 +46,6 @@ + #include "acnamesp.h" + #include "acdispat.h" + #include "actables.h" +-#include "acinterp.h" + + #define _COMPONENT ACPI_NAMESPACE + ACPI_MODULE_NAME("nsload") +@@ -79,8 +78,6 @@ acpi_ns_load_table(u32 table_index, struct acpi_namespace_node *node) + + ACPI_FUNCTION_TRACE(ns_load_table); + +- acpi_ex_enter_interpreter(); +- + /* + * Parse the table and load the namespace with all named + * objects found within. Control methods are NOT parsed +@@ -92,7 +89,7 @@ acpi_ns_load_table(u32 table_index, struct acpi_namespace_node *node) + */ + status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE); + if (ACPI_FAILURE(status)) { +- goto unlock_interp; ++ return_ACPI_STATUS(status); + } + + /* If table already loaded into namespace, just return */ +@@ -133,8 +130,6 @@ acpi_ns_load_table(u32 table_index, struct acpi_namespace_node *node) + + unlock: + (void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE); +-unlock_interp: +- (void)acpi_ex_exit_interpreter(); + + if (ACPI_FAILURE(status)) { + return_ACPI_STATUS(status); +diff --git b/drivers/acpi/acpica/nsparse.c a/drivers/acpi/acpica/nsparse.c +index f631a47..1783cd7 100644 +--- b/drivers/acpi/acpica/nsparse.c ++++ a/drivers/acpi/acpica/nsparse.c +@@ -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); + } |