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 the desired time.
Signed-off-by: Nishanth Aravamudan <[email protected]>
Signed-off-by: Maximilian Attems <[email protected]>
---
linux-2.6.9-rc2-bk7-max/drivers/pcmcia/ds.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff -puN drivers/pcmcia/ds.c~msleep-drivers_pcmcia_ds drivers/pcmcia/ds.c
--- linux-2.6.9-rc2-bk7/drivers/pcmcia/ds.c~msleep-drivers_pcmcia_ds 2004-09-21 20:51:16.000000000 +0200
+++ linux-2.6.9-rc2-bk7-max/drivers/pcmcia/ds.c 2004-09-21 20:51:16.000000000 +0200
@@ -50,6 +50,7 @@
#include <linux/poll.h>
#include <linux/pci.h>
#include <linux/list.h>
+#include <linux/delay.h>
#include <linux/workqueue.h>
#include <asm/atomic.h>
@@ -1080,8 +1081,7 @@ static int __devinit pcmcia_bus_add_sock
* Ugly. But we want to wait for the socket threads to have started up.
* We really should let the drivers themselves drive some of this..
*/
- current->state = TASK_INTERRUPTIBLE;
- schedule_timeout(HZ/4);
+ msleep(250);
init_waitqueue_head(&s->queue);
init_waitqueue_head(&s->request);
_