[UPDATE PATCH] scsi/osst: replace schedule_timeout() with msleep()

Nishanth Aravamudan
2005-03-07T23:05:28Z

On Sun, Mar 06, 2005 at 10:42:55PM +0000, Willem Riede wrote:
> On 03/06/2005 05:27:41 PM, domen@coderock.org wrote:
> >
> >
> > Use msleep() instead of schedule_timeout() to guarantee the task
> > delays as expected. Although TASK_INTERRUPTIBLE is used in the current code,
> > there is no code dealing with an early return / signals_pending().
>
> This change is a total don't-care as far as I'm concerned. But if we are going to
> make it, can we please be consistent? Does the "set_current_state(TASK_INTERRUPTIBLE)"
> stay or go? The two changes below don't agree in that respect.

You are completely correct. Please excuse the sloppy patch, fixed below.

Description: Use msleep() instead of schedule_timeout() to guarantee the
task delays as expected. Although TASK_INTERRUPTIBLE is used in the
current code, there is no code dealing with an early return / signals_pending().

Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com>

--- 2.6.11-v/drivers/scsi/osst.c 2005-03-01 23:38:08.000000000 -0800
+++ 2.6.11/drivers/scsi/osst.c 2005-03-07 15:01:38.000000000 -0800
@@ -862,8 +862,7 @@ static int osst_recover_wait_frame(struc
retval = osst_write_error_recovery(STp, aSRpnt, 0);
break;
}
- set_current_state(TASK_INTERRUPTIBLE);
- schedule_timeout (HZ / OSST_POLL_PER_SEC);
+ msleep(1000 / OSST_POLL_PER_SEC);

STp->buffer->b_data = mybuf; STp->buffer->buffer_size = 24;
memset(cmd, 0, MAX_COMMAND_SIZE);
@@ -1558,8 +1557,7 @@ static int osst_reposition_and_retry(str
osst_set_frame_position(STp, aSRpnt, frame + skip, 1);
flag = 0;
attempts--;
- set_current_state(TASK_INTERRUPTIBLE);
- schedule_timeout(HZ / 10);
+ msleep(100);
}
if (osst_get_frame_position(STp, aSRpnt) < 0) { /* additional write error */
#if DEBUG
@@ -1620,8 +1618,7 @@ static int osst_reposition_and_retry(str
debugging = 0;
}
#endif
- set_current_state(TASK_INTERRUPTIBLE);
- schedule_timeout(HZ / 10);
+ msleep(100);
}
printk(KERN_ERR "%s:E: Failed to find valid tape media\n", name);
#if DEBUG