2004-09-01 23:21:51

by maximilian attems

[permalink] [raw]
Subject: [patch 02/14] mcd: replace schedule_timeout() with msleep()







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)

_