I would appreciate any comments from the janitor@sternweltens list. This is one (of
many) cases where I made a decision about replacing
set_current_state(TASK_INTERRUPTIBLE);
schedule_timeout(some_time);
with
msleep(jiffies_to_msecs(some_time));
msleep() is not exactly the same as the previous code, but I only did
this replacement where I thought long delays were *desired*. If this is
not the case here, then just disregard this patch.
Thanks,
Nish
Description: Uses msleep() instead of schedule_timeout() to guarantee
the task delays at least the desired time amount.
Signed-off-by: Nishanth Aravamudan <[email protected]>
Signed-off-by: Maximilian Attems <[email protected]>
---
linux-2.6.9-rc1-bk7-max/drivers/cdrom/mcd.c | 7 +++----
1 files changed, 3 insertions(+), 4 deletions(-)
diff -puN drivers/cdrom/mcd.c~msleep-drivers_cdrom_mcd drivers/cdrom/mcd.c
--- linux-2.6.9-rc1-bk7/drivers/cdrom/mcd.c~msleep-drivers_cdrom_mcd 2004-09-01 19:34:42.000000000 +0200
+++ linux-2.6.9-rc1-bk7-max/drivers/cdrom/mcd.c 2004-09-01 19:34:42.000000000 +0200
@@ -1021,10 +1021,9 @@ static int mcd_open(struct cdrom_device_
st = statusCmd(); /* check drive status */
if (st == -1)
goto err_out; /* drive doesn't respond */
- if ((st & MST_READY) == 0) { /* no disk? wait a sec... */
- current->state = TASK_INTERRUPTIBLE;
- schedule_timeout(HZ);
- }
+ if ((st & MST_READY) == 0) /* no disk? wait a sec... */
+ msleep(1000);
+
} while (((st & MST_READY) == 0) && count++ < MCD_RETRY_ATTEMPTS);
if (updateToc() < 0)
_