From: domen@coderock.org Use msleep() instead of schedule_timeout() to guarantee the task delays as expected. The current code uses TASK_INTERRUPTIBLE, but does not care about signals, so I believe msleep() should be ok. Signed-off-by: Nishanth Aravamudan Signed-off-by: Domen Puncer Acked-by: Mikael Starvik Signed-off-by: Andrew Morton --- 25-akpm/drivers/serial/crisv10.c | 6 ++---- 1 files changed, 2 insertions(+), 4 deletions(-) diff -puN drivers/serial/crisv10.c~serial-crisv10-replace-schedule_timeout-with-msleep drivers/serial/crisv10.c --- 25/drivers/serial/crisv10.c~serial-crisv10-replace-schedule_timeout-with-msleep 2005-03-07 00:34:58.000000000 -0800 +++ 25-akpm/drivers/serial/crisv10.c 2005-03-07 00:34:58.000000000 -0800 @@ -3757,10 +3757,8 @@ rs_write(struct tty_struct * tty, int fr e100_enable_rx_irq(info); #endif - if (info->rs485.delay_rts_before_send > 0) { - set_current_state(TASK_INTERRUPTIBLE); - schedule_timeout((info->rs485.delay_rts_before_send * HZ)/1000); - } + if (info->rs485.delay_rts_before_send > 0) + msleep(info->rs485.delay_rts_before_send); } #endif /* CONFIG_ETRAX_RS485 */ _