From: janitor@sternwelten.at Uses msleep() instead of schedule_timeout() to guarantee the task delays at least the desired time amount. Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com> Signed-off-by: Maximilian Attems <janitor@sternwelten.at> Signed-off-by: Andrew Morton <akpm@osdl.org> --- 25-akpm/drivers/char/isicom.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff -puN drivers/char/isicom.c~isicom-replace-schedule_timeout-with-msleep drivers/char/isicom.c --- 25/drivers/char/isicom.c~isicom-replace-schedule_timeout-with-msleep Wed Sep 1 15:31:07 2004 +++ 25-akpm/drivers/char/isicom.c Wed Sep 1 15:31:07 2004 @@ -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); _