Any comments would be appreciated.
Description: Use msleep() instead of schedule_timeout() to guarantee
the task delays as expected.
Signed-off-by: Nishanth Aravamudan <[email protected]>
Signed-off-by: Maximilian Attems <[email protected]>
---
linux-2.6.9-rc2-bk7-max/drivers/char/specialix.c | 6 ++----
1 files changed, 2 insertions(+), 4 deletions(-)
diff -puN drivers/char/specialix.c~msleep_interruptible-drivers_char_specialix drivers/char/specialix.c
--- linux-2.6.9-rc2-bk7/drivers/char/specialix.c~msleep_interruptible-drivers_char_specialix 2004-09-21 21:08:20.000000000 +0200
+++ linux-2.6.9-rc2-bk7-max/drivers/char/specialix.c 2004-09-21 21:08:20.000000000 +0200
@@ -1452,8 +1452,7 @@ static void sx_close(struct tty_struct *
*/
timeout = jiffies+HZ;
while(port->IER & IER_TXEMPTY) {
- current->state = TASK_INTERRUPTIBLE;
- schedule_timeout(port->timeout);
+ msleep_interruptible(jiffies_to_msecs(port->timeout));
if (time_after(jiffies, timeout)) {
printk (KERN_INFO "Timeout waiting for close\n");
break;
@@ -1471,8 +1470,7 @@ static void sx_close(struct tty_struct *
port->tty = NULL;
if (port->blocked_open) {
if (port->close_delay) {
- current->state = TASK_INTERRUPTIBLE;
- schedule_timeout(port->close_delay);
+ msleep_interruptible(jiffies_to_msecs(port->close_delay));
}
wake_up_interruptible(&port->open_wait);
}
_