Lv Zheng
2f38b1b16d
ACPICA: Namespace: Fix deadlock triggered by MLC support in dynamic table loading
...
The new module-level code (MLC) approach invokes MLC on the per-table
basis, but the dynamic loading support of this is incorrect because
of the lock order:
acpi_ns_evaluate
acpi_ex_enter_intperter
acpi_ns_load_table (triggered by Load opcode)
acpi_ns_exec_module_code_list
acpi_ex_enter_intperter
The regression is introduced by the following commit:
Commit: 2785ce8d0da1cac9d8f78615e116cf929e9a9123
ACPICA Commit: 071eff738c59eda1792ac24b3b688b61691d7e7c
Subject: ACPICA: Add per-table execution of module-level code
This patch fixes this regression by unlocking the interpreter lock
before invoking MLC. However, the unlocking is done to the
acpi_ns_load_table(), in which the interpreter lock should be locked
by acpi_ns_parse_table() but it wasn't.
Fixes: 2785ce8d0da1 (ACPICA: Add per-table execution of module-level code)
Reported-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Tested-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Cc: 4.5+ <stable@vger.kernel.org> # 4.5+
[ rjw : Subject ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-06-22 01:07:35 +02:00
..
2016-01-15 22:18:09 +01:00
2016-01-15 22:18:09 +01:00
2016-05-05 15:14:35 +02:00
2016-01-15 22:18:09 +01:00
2016-05-05 15:14:35 +02:00
2016-04-05 03:53:33 +02:00
2016-01-15 22:18:09 +01:00
2016-05-05 15:14:35 +02:00
2016-05-05 15:22:26 +02:00
2016-05-05 15:22:27 +02:00
2016-04-05 03:53:33 +02:00
2016-01-15 22:18:09 +01:00
2016-01-15 22:18:09 +01:00
2016-04-05 03:53:33 +02:00
2016-05-05 15:22:26 +02:00
2016-05-05 15:14:35 +02:00
2016-04-05 03:53:33 +02:00
2016-05-05 15:22:28 +02:00
2016-05-05 15:22:28 +02:00
2016-01-15 22:18:09 +01:00
2016-01-15 22:18:09 +01:00
2016-05-05 15:14:35 +02:00
2016-05-05 15:14:35 +02:00
2016-01-15 22:22:05 +01:00
2016-05-05 15:14:35 +02:00
2016-01-15 22:18:09 +01:00
2016-01-15 22:18:09 +01:00
2016-05-05 15:14:35 +02:00
2016-01-15 22:18:09 +01:00
2016-05-05 15:22:28 +02:00
2016-01-15 22:18:09 +01:00
2016-01-15 22:18:09 +01:00
2016-01-15 22:18:09 +01:00
2016-04-05 03:53:33 +02:00
2016-05-05 15:14:35 +02:00
2016-01-15 22:18:09 +01:00
2016-05-05 15:14:35 +02:00
2016-01-15 22:18:09 +01:00
2016-01-15 22:18:09 +01:00
2016-05-05 15:14:35 +02:00
2016-05-06 01:41:06 +02:00
2016-01-15 22:18:09 +01:00
2016-02-24 14:14:49 +01:00
2016-01-15 22:18:09 +01:00
2016-05-05 15:14:35 +02:00
2016-01-15 22:18:09 +01:00
2016-05-05 15:14:35 +02:00
2016-05-05 15:14:35 +02:00
2016-01-15 22:18:09 +01:00
2016-05-05 15:14:35 +02:00
2016-01-15 22:18:09 +01:00
2016-01-15 22:18:09 +01:00
2016-05-05 15:14:35 +02:00
2016-05-05 15:14:35 +02:00
2016-02-24 14:14:49 +01:00
2016-05-05 15:14:35 +02:00
2016-05-05 15:14:35 +02:00
2016-05-05 15:14:35 +02:00
2016-04-05 03:53:34 +02:00
2016-05-05 15:14:35 +02:00
2016-01-15 22:18:09 +01:00
2016-01-15 22:18:09 +01:00
2016-01-15 22:18:09 +01:00
2016-05-05 15:14:35 +02:00
2016-01-15 22:18:09 +01:00
2016-05-05 15:14:35 +02:00
2016-06-22 01:07:35 +02:00
2016-05-05 15:14:35 +02:00
2016-05-05 15:14:35 +02:00
2016-01-15 22:18:09 +01:00
2016-04-05 03:53:33 +02:00
2016-05-05 15:14:35 +02:00
2016-05-05 15:22:27 +02:00
2016-04-05 03:53:31 +02:00
2016-01-15 22:18:09 +01:00
2016-05-05 15:22:28 +02:00
2016-01-15 22:18:09 +01:00
2016-01-15 22:18:09 +01:00
2016-05-05 15:14:35 +02:00
2016-05-05 15:14:35 +02:00
2016-01-15 22:18:09 +01:00
2016-05-05 15:14:35 +02:00
2016-05-05 15:14:35 +02:00
2016-05-05 15:14:35 +02:00
2016-05-05 15:14:35 +02:00
2016-01-15 22:18:09 +01:00
2016-01-15 22:18:09 +01:00
2016-05-05 15:14:35 +02:00
2016-01-15 22:18:09 +01:00
2016-01-15 22:18:09 +01:00
2016-04-05 03:53:32 +02:00
2016-01-15 22:18:09 +01:00
2016-01-15 22:18:09 +01:00
2016-05-05 15:14:35 +02:00
2016-01-15 22:18:09 +01:00
2016-06-15 02:16:13 +02:00
2016-01-15 22:18:09 +01:00
2016-01-15 22:18:09 +01:00
2016-01-15 22:18:09 +01:00
2016-05-05 15:14:35 +02:00
2016-01-15 22:18:09 +01:00
2016-05-05 15:22:28 +02:00
2016-04-05 03:53:33 +02:00
2016-01-15 22:18:09 +01:00
2016-01-15 22:18:09 +01:00
2016-05-05 15:14:35 +02:00
2016-04-05 03:53:33 +02:00
2016-01-15 22:18:09 +01:00
2016-02-24 14:14:49 +01:00
2016-04-05 03:53:34 +02:00
2016-04-04 17:16:07 +02:00
2016-05-05 15:14:35 +02:00
2016-05-05 15:14:35 +02:00
2016-06-22 01:07:35 +02:00
2016-01-15 22:18:09 +01:00
2016-05-05 15:22:26 +02:00
2016-05-05 15:14:35 +02:00
2016-05-05 15:14:35 +02:00
2016-01-15 22:18:09 +01:00
2016-05-05 15:14:35 +02:00
2016-01-15 22:18:09 +01:00
2016-05-05 15:22:25 +02:00
2016-05-05 15:14:35 +02:00
2016-05-05 15:14:35 +02:00
2016-05-05 15:14:35 +02:00
2016-01-15 22:18:09 +01:00
2016-01-15 22:18:09 +01:00
2016-01-15 22:18:09 +01:00
2016-04-05 03:53:33 +02:00
2016-05-05 15:14:35 +02:00
2016-01-15 22:18:09 +01:00
2016-01-15 22:18:09 +01:00
2016-05-05 15:22:26 +02:00
2016-01-15 22:18:09 +01:00
2016-05-05 15:14:35 +02:00
2016-01-15 22:18:09 +01:00
2016-05-05 15:14:35 +02:00
2016-05-05 15:14:35 +02:00
2016-04-05 03:53:33 +02:00
2016-05-05 15:22:26 +02:00
2016-01-15 22:18:09 +01:00
2016-01-15 22:18:09 +01:00
2016-01-15 22:18:09 +01:00
2016-01-15 22:18:09 +01:00
2016-01-15 22:18:09 +01:00
2016-05-05 15:14:35 +02:00
2016-05-05 15:22:26 +02:00
2016-05-05 15:14:35 +02:00
2016-05-05 15:14:35 +02:00
2016-05-05 15:22:28 +02:00
2016-05-05 15:14:35 +02:00
2016-05-05 15:22:28 +02:00
2016-05-05 15:22:28 +02:00
2016-02-24 14:14:49 +01:00
2016-05-05 15:22:28 +02:00
2016-05-05 15:14:35 +02:00
2016-04-05 03:53:34 +02:00
2016-05-05 15:14:35 +02:00
2016-01-15 22:18:09 +01:00
2016-05-05 15:14:35 +02:00
2016-05-05 15:22:28 +02:00
2016-05-05 15:14:35 +02:00
2016-05-05 15:14:35 +02:00
2016-05-05 15:14:35 +02:00
2016-04-05 03:53:33 +02:00
2016-04-05 03:53:31 +02:00
2016-01-15 22:18:09 +01:00
2016-01-15 22:18:09 +01:00
2016-04-05 03:53:33 +02:00
2016-01-15 22:18:09 +01:00
2016-04-05 03:53:33 +02:00
2016-01-15 22:18:09 +01:00
2016-05-05 15:14:35 +02:00
2016-01-15 22:18:09 +01:00
2016-01-15 22:18:09 +01:00
2016-05-05 15:14:35 +02:00
2016-04-05 03:53:33 +02:00
2016-01-15 22:18:09 +01:00
2016-04-05 03:53:33 +02:00
2016-05-05 15:14:35 +02:00
2016-05-05 15:14:35 +02:00
2016-05-05 15:14:35 +02:00
2016-01-15 22:18:09 +01:00
2016-05-05 15:14:35 +02:00
2016-01-15 22:18:09 +01:00
2016-01-15 22:18:09 +01:00
2016-05-05 15:22:28 +02:00
2016-04-05 03:53:33 +02:00
2016-01-15 22:18:09 +01:00
2016-05-05 15:14:35 +02:00
2016-02-24 14:14:49 +01:00
2016-03-10 21:31:14 +01:00
2016-01-15 22:18:09 +01:00