--- linux/drivers/acpi/osl.c~ 2003-10-26 20:14:19.000000000 -0700 +++ linux/drivers/acpi/osl.c 2003-10-26 19:53:33.000000000 -0700 @@ -40,6 +40,7 @@ #include #include #include +#include #ifdef CONFIG_ACPI_EFI #include @@ -290,8 +291,12 @@ void acpi_os_sleep(u32 sec, u32 ms) { - current->state = TASK_INTERRUPTIBLE; - schedule_timeout(HZ * sec + (ms * HZ) / 1000); + if (!in_atomic()) { + current->state = TASK_INTERRUPTIBLE; + schedule_timeout(HZ * sec + (ms * HZ) / 1000); + } else { + acpi_os_stall(sec * 1000000 + ms * 1000); + } } void