diff --git a/src/add-ons/kernel/bus_managers/acpi/ACPICAHaiku.cpp b/src/add-ons/kernel/bus_managers/acpi/ACPICAHaiku.cpp index 3aad4e020e..dda946e3bf 100644 --- a/src/add-ons/kernel/bus_managers/acpi/ACPICAHaiku.cpp +++ b/src/add-ons/kernel/bus_managers/acpi/ACPICAHaiku.cpp @@ -1298,9 +1298,11 @@ AcpiOsAcquireMutex(ACPI_MUTEX handle, UINT16 timeout) ACPI_STATUS result = AE_OK; DEBUG_FUNCTION_VF("mutex: %p; timeout: %u", handle, timeout); - if (timeout == ACPI_WAIT_FOREVER) - result = mutex_lock(handle) == B_OK ? AE_OK : AE_BAD_PARAMETER; - else { + if (timeout == ACPI_WAIT_FOREVER) { + result = (mutex_lock(handle) == B_OK) ? AE_OK : AE_BAD_PARAMETER; + } else if (timeout == ACPI_DO_NOT_WAIT) { + result = (mutex_trylock(handle) == B_OK) ? AE_OK : AE_TIME; + } else { switch (mutex_lock_with_timeout(handle, B_RELATIVE_TIMEOUT, (bigtime_t)timeout * 1000)) { case B_OK: