block/swim_iop: replace schedule_timeout() with
Subsystems (2)
PATCH 1/1 block/swim_iop: replace schedule_timeout() with
Hi,
Re-send of a patch from January 24, 2005, adding Jens this time.
Thanks,
Nish
Description: Change the delay logic of swimiop_eject() to use msleep_interruptible() and time_before(). Rather than depend on the number of iterations of the loop for timing accuracy, I rely on the current value of jiffies relative to a static timeout (end_jiffies).
Signed-off-by Nishanth Aravamudan <[email protected]>
drivers/block/swim_iop.c +6 -6
@@ -318,7 +318,8 @@ static void swimiop_status_update(int drstatic int swimiop_eject (struct floppy_state *fs) { -int err, n; +int err; +unsigned long end_jiffies;struct swim_iop_req req;struct swimcmd_eject *cmd = (struct swimcmd_eject *) &req.command[0 ];
@@ -333,14 +334,13 @@ static int swimiop_eject(struct floppy_srelease_drive (fs);return err; } -for (n =2 *HZ ; n >0 ; --n) { -if (req.complete)break ; -if (signal_pending (current)) { + end_jiffies = jiffies +2 *HZ ; +while (!req.complete &&time_before (jiffies, end_jiffies)) { +msleep_interruptible (10 ); +if (signals_pending (current)) { err = -EINTR ;break ; } -set_current_state (TASK_INTERRUPTIBLE ); -schedule_timeout (1 ); }release_drive (fs);return cmd->error;
_______________________________________________
Kernel-janitors mailing list
[email protected]
http://lists.osdl.org/mailman/listinfo/kernel-janitors