2004-09-01 23:13:56

by maximilian attems

[permalink] [raw]
Subject: [patch 22/25] isicom: 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.

Note: I could not find any current Maintainer for this driver. If there
is one I should sent the patch too, please let me know.

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/char/isicom.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)

diff -puN drivers/char/isicom.c~msleep-drivers_char_isicom drivers/char/isicom.c
--- linux-2.6.9-rc1-bk7/drivers/char/isicom.c~msleep-drivers_char_isicom 2004-09-01 21:08:16.000000000 +0200
+++ linux-2.6.9-rc1-bk7-max/drivers/char/isicom.c 2004-09-01 21:09:01.000000000 +0200
@@ -48,6 +48,7 @@
#include <linux/miscdevice.h>
#include <linux/interrupt.h>
#include <linux/timer.h>
+#include <linux/delay.h>
#include <linux/ioport.h>

#include <asm/uaccess.h>
@@ -1906,8 +1907,7 @@ int init_module(void)
void cleanup_module(void)
{
re_schedule = 0;
- set_current_state(TASK_INTERRUPTIBLE);
- schedule_timeout(HZ);
+ msleep(1000);

#ifdef ISICOM_DEBUG
printk("ISICOM: isicom_tx tx_count = %ld.\n", tx_count);

_