The osl driver has a few dependencies on HZ which are not handled correctly for all values. Use msleep_interruptible() and jiffies_to_msecs() to rectify the situation. Patch is compile-tested. Signed-off-by: Nishanth Aravamudan Signed-off-by: Domen Puncer --- kj-domen/drivers/acpi/osl.c | 5 ++--- 1 files changed, 2 insertions(+), 3 deletions(-) diff -puN drivers/acpi/osl.c~msleep-drivers_acpi_osl drivers/acpi/osl.c --- kj/drivers/acpi/osl.c~msleep-drivers_acpi_osl 2005-04-05 12:57:06.000000000 +0200 +++ kj-domen/drivers/acpi/osl.c 2005-04-05 12:57:06.000000000 +0200 @@ -317,8 +317,7 @@ acpi_os_remove_interrupt_handler(u32 irq void acpi_os_sleep(acpi_integer ms) { - current->state = TASK_INTERRUPTIBLE; - schedule_timeout(((signed long) ms * HZ) / 1000); + msleep_interruptible((unsigned int)ms); } EXPORT_SYMBOL(acpi_os_sleep); @@ -938,7 +937,7 @@ acpi_os_wait_semaphore( // TODO: A better timeout algorithm? { int i = 0; - static const int quantum_ms = 1000/HZ; + unsigned int quantum_ms = jiffies_to_msecs(1); ret = down_trylock(sem); for (i = timeout; (i > 0 && ret < 0); i -= quantum_ms) { _