From: Domen Puncer Use ssleep() instead of schedule_timeout() to guarantee the task delays as expected. The original code does use TASK_INTERRUPTIBLE, but does not check for signals or early return from schedule_timeout() so ssleep() seems more appropriate. Signed-off-by: Nishanth Aravamudan Signed-off-by: Domen Puncer Signed-off-by: Andrew Morton --- 25-akpm/drivers/message/fusion/mptbase.c | 3 +-- 1 files changed, 1 insertion(+), 2 deletions(-) diff -puN drivers/message/fusion/mptbase.c~message-mptbase-replace-schedule_timeout-with-ssleep drivers/message/fusion/mptbase.c --- 25/drivers/message/fusion/mptbase.c~message-mptbase-replace-schedule_timeout-with-ssleep 2005-03-06 19:57:41.000000000 -0800 +++ 25-akpm/drivers/message/fusion/mptbase.c 2005-03-06 19:57:41.000000000 -0800 @@ -3137,8 +3137,7 @@ mpt_diag_reset(MPT_ADAPTER *ioc, int ign /* wait 1 sec */ if (sleepFlag == CAN_SLEEP) { - set_current_state(TASK_INTERRUPTIBLE); - schedule_timeout(1000 * HZ / 1000); + ssleep(1); } else { mdelay (1000); } _