Commit fcfc638c authored by Alexey Y. Starikovskiy's avatar Alexey Y. Starikovskiy Committed by Len Brown

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#c159Signed-off-by: default avatarLen Brown <len.brown@intel.com>
parent b4bd8c66
...@@ -342,20 +342,8 @@ static u32 acpi_ev_global_lock_handler(void *context) ...@@ -342,20 +342,8 @@ static u32 acpi_ev_global_lock_handler(void *context)
if (acquired) { if (acquired) {
/* Got the lock, now wake all threads waiting for it */ /* Got the lock, now wake all threads waiting for it */
acpi_gbl_global_lock_acquired = TRUE; acpi_gbl_global_lock_acquired = TRUE;
acpi_ev_global_lock_thread(context);
/* 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);
}
} }
return (ACPI_INTERRUPT_HANDLED); return (ACPI_INTERRUPT_HANDLED);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment