ACPI: acpi_os_get_thread_id() returns current
Linux mutexes and the debug code that that reference acpi_os_get_thread_id() are happy with 0. But the AML mutexes in exmutex.c expect a unique non-zero number for each thread - as they track this thread_id to permit the mutex re-entrancy defined by the ACPI spec. http://bugzilla.kernel.org/show_bug.cgi?id=6687 Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
parent
120bda20c6
commit
ab8aa06a5c
5 changed files with 12 additions and 11 deletions
|
@ -244,14 +244,14 @@ acpi_status acpi_ut_acquire_mutex(acpi_mutex_handle mutex_id)
|
|||
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_MUTEX,
|
||||
"Thread %X attempting to acquire Mutex [%s]\n",
|
||||
this_thread_id, acpi_ut_get_mutex_name(mutex_id)));
|
||||
(u32) this_thread_id, acpi_ut_get_mutex_name(mutex_id)));
|
||||
|
||||
status = acpi_os_acquire_mutex(acpi_gbl_mutex_info[mutex_id].mutex,
|
||||
ACPI_WAIT_FOREVER);
|
||||
if (ACPI_SUCCESS(status)) {
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_MUTEX,
|
||||
"Thread %X acquired Mutex [%s]\n",
|
||||
this_thread_id,
|
||||
(u32) this_thread_id,
|
||||
acpi_ut_get_mutex_name(mutex_id)));
|
||||
|
||||
acpi_gbl_mutex_info[mutex_id].use_count++;
|
||||
|
@ -259,7 +259,7 @@ acpi_status acpi_ut_acquire_mutex(acpi_mutex_handle mutex_id)
|
|||
} else {
|
||||
ACPI_EXCEPTION((AE_INFO, status,
|
||||
"Thread %X could not acquire Mutex [%X]",
|
||||
this_thread_id, mutex_id));
|
||||
(u32) this_thread_id, mutex_id));
|
||||
}
|
||||
|
||||
return (status);
|
||||
|
@ -285,7 +285,7 @@ acpi_status acpi_ut_release_mutex(acpi_mutex_handle mutex_id)
|
|||
|
||||
this_thread_id = acpi_os_get_thread_id();
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_MUTEX,
|
||||
"Thread %X releasing Mutex [%s]\n", this_thread_id,
|
||||
"Thread %X releasing Mutex [%s]\n", (u32) this_thread_id,
|
||||
acpi_ut_get_mutex_name(mutex_id)));
|
||||
|
||||
if (mutex_id > ACPI_MAX_MUTEX) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue