Any comments would be appreciated. Description: Use msleep_interruptible() instead of schedule_timeout() to gurantee the task delays as expected. Signed-off-by: Nishanth Aravamudan Signed-off-by: Domen Puncer --- kj-domen/drivers/cdrom/sonycd535.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff -puN drivers/cdrom/sonycd535.c~msleep_interruptible-drivers_cdrom_sonycd535 drivers/cdrom/sonycd535.c --- kj/drivers/cdrom/sonycd535.c~msleep_interruptible-drivers_cdrom_sonycd535 2004-12-25 01:34:42.000000000 +0100 +++ kj-domen/drivers/cdrom/sonycd535.c 2004-12-25 01:34:42.000000000 +0100 @@ -129,6 +129,7 @@ #include #include #include +#include #define REALLY_SLOW_IO #include @@ -1478,8 +1479,7 @@ static int __init sony535_init(void) /* look for the CD-ROM, follows the procedure in the DOS driver */ inb(select_unit_reg); /* wait for 40 18 Hz ticks (reverse-engineered from DOS driver) */ - set_current_state(TASK_INTERRUPTIBLE); - schedule_timeout((HZ+17)*40/18); + msleep_interruptible(2223); inb(result_reg); outb(0, read_status_reg); /* does a reset? */ _