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-03-23 17:52:10 +02:00
2016-04-12 12:35:07 -07:00
2016-04-29 14:22:25 +02:00
2016-04-16 22:52:03 +05:30
2016-03-25 08:52:25 -07:00
2016-03-17 13:47:50 -07:00
2016-04-07 22:11:08 +02:00
2016-04-29 17:07:54 -07:00
2016-03-23 17:20:59 -07:00
2016-04-28 19:44:47 -07:00
2016-03-24 19:57:15 -07:00
2016-03-18 10:15:11 -07:00
2016-04-29 18:50:08 -07:00
2016-04-15 15:25:09 -07:00
2016-03-19 15:15:07 -07:00
2016-04-18 19:52:47 -07:00
2016-04-27 08:57:11 -07:00
2016-04-14 16:54:00 +02:00
2016-03-18 10:15:11 -07:00
2016-04-25 16:20:49 -04:00
2016-04-29 17:07:54 -07:00
2016-04-20 10:38:06 +03:00
2016-03-17 13:05:09 -07:00
2016-04-04 11:18:00 +01:00