serial/68360serial: replace schedule_timeout() with msleep_interruptible()
PATCH 1/4 serial/68360serial: replace schedule_timeout() with msleep_interruptible()
From: Nishanth Aravamudan <[email protected]>
Use msleep_interruptible() instead of schedule_timeout() in send_break() to guarantee the task delays as expected. Change @duration's units to milliseconds, and modify arguments in callers appropriately.
Signed-off-by Nishanth Aravamudan <[email protected]>
Signed-off-by Domen Puncer <[email protected]>
--- 68360serial.c | 9 ++++----- 1 files changed, 4 insertions(+), 5 deletions(-)
drivers/serial/68360serial.c +4 -5
@@ -1394,14 +1394,13 @@ static void end_break(ser_info_t *info)/* * This routine sends a break character out the serial port. */ -static void send_break (ser_info_t *info,int duration) +static void send_break (ser_info_t *info,unsigned int duration) { -set_current_state (TASK_INTERRUPTIBLE );#ifdef SERIAL_DEBUG_SEND_BREAK printk ("rs_send_break(%d) jiff=%lu..." , duration, jiffies);#endif begin_break (info); -schedule_timeout (duration); +msleep_interruptible (duration);end_break (info);#ifdef SERIAL_DEBUG_SEND_BREAK printk ("done jiffies=%lu\n" , jiffies);
@@ -1436,7 +1435,7 @@ static int rs_360_ioctl(struct tty_strucif (signal_pending (current))return -EINTR ;if (!arg) { -send_break (info,HZ /4 );/* 1/4 second */ +send_break (info,250 );/* 1/4 second */ if (signal_pending (current))return -EINTR ; }
@@ -1448,7 +1447,7 @@ static int rs_360_ioctl(struct tty_structty_wait_until_sent (tty,0 );if (signal_pending (current))return -EINTR ; -send_break (info, arg ? arg*(HZ /10 ) :HZ /4 ); +send_break (info, arg ? arg*100 :250 );if (signal_pending (current))return -EINTR ;return 0 ;
--