Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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: default avatarLen Brown <len.brown@intel.com>
parent b4bd8c66
Loading
Loading
Loading
Loading
+1 −13
Original line number Original line Diff line number Diff line
@@ -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);