block/swim_iop: replace schedule_timeout()
Subsystems (2)
PATCH 4/22 block/swim_iop: replace schedule_timeout()
Quoted 10 lines · Nishanth Aravamudan
Hi,
Please consider applying.
Description: Change the delay logic of
swimiop_eject()to usemsleep_interruptible()andtime_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]>
Compile failure; fixed below.
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).
drivers/block/swim_iop.c +6 -6
@@ -317,7 +317,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 ];
@@ -332,14 +333,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