ACPICA: fix AML mutex re-entrancy
ACPI AML supports "serialized" methods which are protected by an implicit mutex. The mutex is re-entrant for that AML thread to allow recursion. However, Linux implements notify() by creating a new AML thread. So for systems where notify() re-enters a serialized method, deadlock results. The fix is to use the Linux thread_id as the key to allowing re-entrancy, not the AML thread pointer. http://bugzilla.kernel.org/show_bug.cgi?id=5534 Signed-off-by: Alexey Starikovskiy <alexey.y.starikovskiy@linux.intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
committed by
Len Brown
parent
724339d76d
commit
c0d127b569
@ -170,7 +170,6 @@ static void acpi_ut_delete_internal_obj(union acpi_operand_object *object)
|
||||
acpi_os_delete_mutex(object->mutex.os_mutex);
|
||||
acpi_gbl_global_lock_mutex = NULL;
|
||||
} else {
|
||||
acpi_ex_unlink_mutex(object);
|
||||
acpi_os_delete_mutex(object->mutex.os_mutex);
|
||||
}
|
||||
break;
|
||||
|
Reference in New Issue
Block a user