diff options
Diffstat (limited to 'drivers/acpi/osl.c')
-rw-r--r-- | drivers/acpi/osl.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c index b7d1514cd199..507f051d1cef 100644 --- a/drivers/acpi/osl.c +++ b/drivers/acpi/osl.c | |||
@@ -746,6 +746,16 @@ acpi_status acpi_os_wait_semaphore(acpi_handle handle, u32 units, u16 timeout) | |||
746 | ACPI_DEBUG_PRINT((ACPI_DB_MUTEX, "Waiting for semaphore[%p|%d|%d]\n", | 746 | ACPI_DEBUG_PRINT((ACPI_DB_MUTEX, "Waiting for semaphore[%p|%d|%d]\n", |
747 | handle, units, timeout)); | 747 | handle, units, timeout)); |
748 | 748 | ||
749 | /* | ||
750 | * This can be called during resume with interrupts off. | ||
751 | * Like boot-time, we should be single threaded and will | ||
752 | * always get the lock if we try -- timeout or not. | ||
753 | * If this doesn't succeed, then we will oops courtesy of | ||
754 | * might_sleep() in down(). | ||
755 | */ | ||
756 | if (!down_trylock(sem)) | ||
757 | return AE_OK; | ||
758 | |||
749 | switch (timeout) { | 759 | switch (timeout) { |
750 | /* | 760 | /* |
751 | * No Wait: | 761 | * No Wait: |