From: Nishanth Aravamudan Subject: [KJ] [PATCH 6/22] block/xd: replace schedule_timeout() with msleep() Use msleep() instead of schedule_timeout() to guarantee the task delays as expected. The current code wishes to sleep for 1 jiffy, but I am not sure if this is actually intended, as with the change to HZ=1000, the time equivalent of 1 jiffy changed from 10ms to 1ms. I have assumed the former in this case; however the patch can be easily changed to assume the latter. Signed-off-by: Nishanth Aravamudan Signed-off-by: Domen Puncer --- xd.c | 7 +++---- 1 files changed, 3 insertions(+), 4 deletions(-) Index: quilt/drivers/block/xd.c =================================================================== --- quilt.orig/drivers/block/xd.c +++ quilt/drivers/block/xd.c @@ -47,6 +47,7 @@ #include #include #include +#include #include #include @@ -529,10 +530,8 @@ static inline u_char xd_waitport (u_shor int success; xdc_busy = 1; - while ((success = ((inb(port) & mask) != flags)) && time_before(jiffies, expiry)) { - set_current_state(TASK_UNINTERRUPTIBLE); - schedule_timeout(1); - } + while ((success = ((inb(port) & mask) != flags)) && time_before(jiffies, expiry)) + msleep(10); xdc_busy = 0; return (success); }