Skip to content

Commit

Permalink
ACPI: Remove deferred execution from global lock acquire wakeup path
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Alexey Y. Starikovskiy authored and Len Brown committed Oct 14, 2006
1 parent b4bd8c6 commit fcfc638
Showing 1 changed file with 1 addition and 13 deletions.
14 changes: 1 addition & 13 deletions drivers/acpi/events/evmisc.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit fcfc638

Please sign in to comment.