ACPI: Remove deferred execution from global lock acquire wakeup path
On acquiring the ACPI global lock, if there were sleepers on the lock, we used to use acpi_os_execute() to defer a thread which would signal sleepers. Now just signal the semaphore directly. http://bugzilla.kernel.org/show_bug.cgi?id=5534#c159 Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
parent
b4bd8c6643
commit
fcfc638c6b
1 changed files with 1 additions and 13 deletions
|
@ -342,20 +342,8 @@ static u32 acpi_ev_global_lock_handler(void *context)
|
|||
if (acquired) {
|
||||
|
||||
/* Got the lock, now wake all threads waiting for it */
|
||||
|
||||
acpi_gbl_global_lock_acquired = TRUE;
|
||||
|
||||
/* Run the Global Lock thread which will signal all waiting threads */
|
||||
|
||||
status =
|
||||
acpi_os_execute(OSL_GLOBAL_LOCK_HANDLER,
|
||||
acpi_ev_global_lock_thread, context);
|
||||
if (ACPI_FAILURE(status)) {
|
||||
ACPI_EXCEPTION((AE_INFO, status,
|
||||
"Could not queue Global Lock thread"));
|
||||
|
||||
return (ACPI_INTERRUPT_NOT_HANDLED);
|
||||
}
|
||||
acpi_ev_global_lock_thread(context);
|
||||
}
|
||||
|
||||
return (ACPI_INTERRUPT_HANDLED);
|
||||
|
|
Loading…
Reference in a new issue