char/stallion: replace
Subsystems (2)
PATCH 26/33 char/stallion: replace
Any comments would be appreciated. I'm not sure if I did the desired thing here, as I got rid of stl_delay() completely. After the msleep_interruptible() replacement, stli_delay() would only be used in one place. I'm not sure which way is preferred (the original or mine) regarding the second change, therefore.
Description: Use msleep_interruptible() instead of stl_delay() to guarantee the task delays as expected. Removed the definition / prototype of stl_delay() as it was only called in one other place, where I made the direct change to set_current_state()/schedule_timeout().
drivers/char/stallion.c +3 -22
@@ -512,7 +512,6 @@ static int stl_clrportstats(stlport_t *pstatic int stl_getportstruct (stlport_t __user *arg);static int stl_getbrdstruct (stlbrd_t __user *arg);static int stl_waitcarrier (stlport_t *portp,struct file *filp); -static void stl_delay (int len);static void stl_eiointr (stlbrd_t *brdp);static void stl_echatintr (stlbrd_t *brdp);static void stl_echmcaintr (stlbrd_t *brdp);
@@ -1205,7 +1204,7 @@ static void stl_close(struct tty_structif (portp->openwaitcnt) {if (portp->close_delay) -stl_delay (portp->close_delay); +msleep_interruptible (jiffies_to_msecs (portp->close_delay));wake_up_interruptible (&portp->open_wait); }
@@ -1217,25 +1216,6 @@ static void stl_close(struct tty_struct/*****************************************************************************/ /* -* Wait for a specified delay period, this is not a busy-loop. It will -* give up the processor while waiting. Unfortunately this has some -* rather intimate knowledge of the process management stuff. -*/ - -static void stl_delay (int len) -{ -#ifdef DEBUG -printk ("stl_delay(len=%d)\n" , len); -#endif -if (len >0 ) { - current->state =TASK_INTERRUPTIBLE ; -schedule_timeout (len); - } -} - -/*****************************************************************************/ - -/* * Write routine. Take data and stuff it in to the TX ring queue. * If transmit interrupts are not running then start them. */
@@ -1858,7 +1838,8 @@ static void stl_waituntilsent(struct ttywhile (stl_datastate (portp)) {if (signal_pending (current))break ; -stl_delay (2 ); +set_current_state (TASK_INTERRUPTIBLE ); +schedule_timeout (2 );if (time_after_eq (jiffies, tend))break ; }
_______________________________________________
Kernel-janitors mailing list
[email protected]
http://lists.osdl.org/mailman/listinfo/kernel-janitors
Quoted 60 lines · Nishanth Aravamudan
Any comments would be appreciated. I'm not sure if I did the desired thing here, as I got rid of
stl_delay()completely. After themsleep_interruptible()replacement,stli_delay()would only be used in one place. I'm not sure which way is preferred (the original or mine) regarding the second change, therefore.Description: Use
msleep_interruptible()instead ofstl_delay()to guarantee the task delays as expected. Removed the definition / prototype ofstl_delay()as it was only called in one other place, where I made the direct change to set_current_state()/schedule_timeout().Signed-off-by Nishanth Aravamudan <[email protected]>drivers/char/stallion.c +1
-21@@ -512,7 +512,6 @@ static int stl_clrportstats(stlport_t *pstatic int stl_getportstruct (stlport_t __user *arg);static int stl_getbrdstruct (stlbrd_t __user *arg);static int stl_waitcarrier (stlport_t *portp,struct file *filp); -static void stl_delay (int len);static void stl_eiointr (stlbrd_t *brdp);static void stl_echatintr (stlbrd_t *brdp);static void stl_echmcaintr (stlbrd_t *brdp);@@ -1205,7 +1204,7 @@ static void stl_close(struct tty_structif (portp->openwaitcnt) {if (portp->close_delay) -stl_delay (portp->close_delay); +msleep_interruptible (jiffies_to_msecs (portp->close_delay));wake_up_interruptible (&portp->open_wait); }@@ -1217,25 +1216,6 @@ static void stl_close(struct tty_struct/*****************************************************************************/ /* -* Wait for a specified delay period, this is not a busy-loop. It will -* give up the processor while waiting. Unfortunately this has some -* rather intimate knowledge of the process management stuff. -*/ - -static void stl_delay (int len) -{ -#ifdef DEBUG -printk ("stl_delay(len=%d)\n" , len); -#endif -if (len >0 ) { - current->state =TASK_INTERRUPTIBLE ; -schedule_timeout (len); - } -} - -/*****************************************************************************/ - -/* * Write routine. Take data and stuff it in to the TX ring queue. * If transmit interrupts are not running then start them. */
drivers/char/stallion.c static void stl_waituntilsent(struct tty · line 1845
Quoted 9 lines
drivers/char/stallion.c +2
-1@@ -1858,7 +1838,8 @@ static void stl_waituntilsent(struct ttywhile (stl_datastate (portp)) {if (signal_pending (current))break ; -stl_delay (2 ); +set_current_state (TASK_INTERRUPTIBLE ); +schedule_timeout (2 );if (time_after_eq (jiffies, tend))break ; }
added include for kjt.
a++ maks
_______________________________________________
Kernel-janitors mailing list
[email protected]
http://lists.osdl.org/mailman/listinfo/kernel-janitors