From: Use msleep_interruptible() instead of schedule_timeout() under drivers/message. Signed-off-by: Nishanth Aravamudan Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton --- 25-akpm/drivers/message/fusion/mptbase.c | 42 ++++++++++--------------------- 25-akpm/drivers/message/i2o/device.c | 4 +- 25-akpm/drivers/message/i2o/exec-osm.c | 3 +- 3 files changed, 18 insertions(+), 31 deletions(-) diff -puN drivers/message/fusion/mptbase.c~drivers-message-replace-schedule_timeout-with-msleep_interruptible drivers/message/fusion/mptbase.c --- 25/drivers/message/fusion/mptbase.c~drivers-message-replace-schedule_timeout-with-msleep_interruptible Thu Sep 23 16:01:05 2004 +++ 25-akpm/drivers/message/fusion/mptbase.c Thu Sep 23 16:01:05 2004 @@ -2229,8 +2229,7 @@ MakeIocReady(MPT_ADAPTER *ioc, int force } if (sleepFlag == CAN_SLEEP) { - set_current_state(TASK_INTERRUPTIBLE); - schedule_timeout(1 * HZ / 1000); + msleep_interruptible(1); } else { mdelay (1); /* 1 msec delay */ } @@ -2599,8 +2598,7 @@ SendIocInit(MPT_ADAPTER *ioc, int sleepF state = mpt_GetIocState(ioc, 1); while (state != MPI_IOC_STATE_OPERATIONAL && --cntdn) { if (sleepFlag == CAN_SLEEP) { - set_current_state(TASK_INTERRUPTIBLE); - schedule_timeout(1 * HZ / 1000); + msleep_interruptible(1); } else { mdelay(1); } @@ -2867,8 +2865,7 @@ mpt_downloadboot(MPT_ADAPTER *ioc, int s /* wait 1 msec */ if (sleepFlag == CAN_SLEEP) { - set_current_state(TASK_INTERRUPTIBLE); - schedule_timeout(1 * HZ / 1000); + msleep_interruptible(1); } else { mdelay (1); } @@ -2885,8 +2882,7 @@ mpt_downloadboot(MPT_ADAPTER *ioc, int s } /* wait 1 sec */ if (sleepFlag == CAN_SLEEP) { - set_current_state(TASK_INTERRUPTIBLE); - schedule_timeout(1000 * HZ / 1000); + msleep_interruptible (1000); } else { mdelay (1000); } @@ -2986,8 +2982,7 @@ mpt_downloadboot(MPT_ADAPTER *ioc, int s return 0; } if (sleepFlag == CAN_SLEEP) { - set_current_state(TASK_INTERRUPTIBLE); - schedule_timeout(10 * HZ / 1000); + msleep_interruptible (10); } else { mdelay (10); } @@ -3038,8 +3033,7 @@ KickStart(MPT_ADAPTER *ioc, int force, i SendIocReset(ioc, MPI_FUNCTION_IOC_MESSAGE_UNIT_RESET, sleepFlag); if (sleepFlag == CAN_SLEEP) { - set_current_state(TASK_INTERRUPTIBLE); - schedule_timeout(1000 * HZ / 1000); + msleep_interruptible (1000); } else { mdelay (1000); } @@ -3061,8 +3055,7 @@ KickStart(MPT_ADAPTER *ioc, int force, i return hard_reset_done; } if (sleepFlag == CAN_SLEEP) { - set_current_state(TASK_INTERRUPTIBLE); - schedule_timeout(10 * HZ / 1000); + msleep_interruptible (10); } else { mdelay (10); } @@ -3133,8 +3126,7 @@ mpt_diag_reset(MPT_ADAPTER *ioc, int ign /* wait 100 msec */ if (sleepFlag == CAN_SLEEP) { - set_current_state(TASK_INTERRUPTIBLE); - schedule_timeout(100 * HZ / 1000); + msleep_interruptible (100); } else { mdelay (100); } @@ -3213,8 +3205,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); + msleep_interruptible (1000); } else { mdelay (1000); } @@ -3241,8 +3232,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); + msleep_interruptible(1000); } else { mdelay (1000); } @@ -3276,8 +3266,7 @@ mpt_diag_reset(MPT_ADAPTER *ioc, int ign /* wait 100 msec */ if (sleepFlag == CAN_SLEEP) { - set_current_state(TASK_INTERRUPTIBLE); - schedule_timeout(100 * HZ / 1000); + msleep_interruptible (100); } else { mdelay (100); } @@ -3371,8 +3360,7 @@ SendIocReset(MPT_ADAPTER *ioc, u8 reset_ } if (sleepFlag == CAN_SLEEP) { - set_current_state(TASK_INTERRUPTIBLE); - schedule_timeout(1 * HZ / 1000); + msleep_interruptible(1); } else { mdelay (1); /* 1 msec delay */ } @@ -3808,8 +3796,7 @@ WaitForDoorbellAck(MPT_ADAPTER *ioc, int intstat = CHIPREG_READ32(&ioc->chip->IntStatus); if (! (intstat & MPI_HIS_IOP_DOORBELL_STATUS)) break; - set_current_state(TASK_INTERRUPTIBLE); - schedule_timeout(1 * HZ / 1000); + msleep_interruptible (1); count++; } } else { @@ -3858,8 +3845,7 @@ WaitForDoorbellInt(MPT_ADAPTER *ioc, int intstat = CHIPREG_READ32(&ioc->chip->IntStatus); if (intstat & MPI_HIS_DOORBELL_INTERRUPT) break; - set_current_state(TASK_INTERRUPTIBLE); - schedule_timeout(1 * HZ / 1000); + msleep_interruptible(1); count++; } } else { diff -puN drivers/message/i2o/exec-osm.c~drivers-message-replace-schedule_timeout-with-msleep_interruptible drivers/message/i2o/exec-osm.c --- 25/drivers/message/i2o/exec-osm.c~drivers-message-replace-schedule_timeout-with-msleep_interruptible Thu Sep 23 16:01:05 2004 +++ 25-akpm/drivers/message/i2o/exec-osm.c Thu Sep 23 16:01:05 2004 @@ -29,6 +29,7 @@ #include #include +#include struct i2o_driver i2o_exec_driver; @@ -151,7 +152,7 @@ int i2o_msg_post_wait_mem(struct i2o_con prepare_to_wait(&wq, &wait, TASK_INTERRUPTIBLE); if (!iwait->complete) - schedule_timeout(timeout * HZ); + msleep_interruptible(timeout * 1000); finish_wait(&wq, &wait); diff -puN drivers/message/i2o/device.c~drivers-message-replace-schedule_timeout-with-msleep_interruptible drivers/message/i2o/device.c --- 25/drivers/message/i2o/device.c~drivers-message-replace-schedule_timeout-with-msleep_interruptible Thu Sep 23 16:01:05 2004 +++ 25-akpm/drivers/message/i2o/device.c Thu Sep 23 16:01:05 2004 @@ -15,6 +15,7 @@ #include #include +#include /* Exec OSM functions */ extern struct bus_type i2o_bus_type; @@ -106,8 +107,7 @@ int i2o_device_claim_release(struct i2o_ if (!rc) break; - set_current_state(TASK_UNINTERRUPTIBLE); - schedule_timeout(HZ); + ssleep(1); } if (!rc) _