logo       

[Kernel-janitors] RE: [PATCH] cciss: replace schedule_timeout() with msleep: msg#00261

Subject: [Kernel-janitors] RE: [PATCH] cciss: replace schedule_timeout() with msleep()
You'll have to explain why msleep will guarantee the timeout period whereas 
schedule_timeout may not. Maybe I'm missing something.

mikem

-----Original Message-----
From: Nishanth Aravamudan [mailto:nacc@xxxxxxxxxx]
Sent: Monday, July 19, 2004 4:39 PM
To: Miller, Mike (OS Dev)
Cc: kernel-janitors@xxxxxxxxxxxxxx
Subject: [PATCH] cciss: replace schedule_timeout() with msleep()


I would appreciate any comments from the janitors 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



Applys-to: 2.6.7

Description: Uses msleep() instead of schedule_timeout() to guarantee
the task delays at least the desired time amount.

Signed-off-by: Nishanth Aravamudan <nacc@xxxxxxxxxx>

--- linux-vanilla/drivers/block/cciss.c 2004-06-16 05:20:04.000000000 +0000
+++ linux-dev/drivers/block/cciss.c     2004-07-10 18:19:33.000000000 +0000
@@ -2242,8 +2242,7 @@ static int cciss_pci_init(ctlr_info_t *c
                scratchpad = readl(c->vaddr + SA5_SCRATCHPAD_OFFSET);
                if (scratchpad == CCISS_FIRMWARE_READY)
                        break;
-               set_current_state(TASK_INTERRUPTIBLE);
-               schedule_timeout(HZ / 10); /* wait 100ms */
+               msleep(100);
        }
        if (scratchpad != CCISS_FIRMWARE_READY) {
                printk(KERN_WARNING "cciss: Board not ready.  Timed out.\n");


<Prev in Thread] Current Thread [Next in Thread>