2004-09-23 20:37:44

by maximilian attems

[permalink] [raw]
Subject: [patch 17/26] char/riscom8: replace schedule_timeout() with msleep_interruptible()




Any comments would be appreciated.

Description: Use msleep_interruptible() 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/riscom8.c | 7 +++----
1 files changed, 3 insertions(+), 4 deletions(-)

diff -puN drivers/char/riscom8.c~msleep_interruptible-drivers_char_riscom8 drivers/char/riscom8.c
--- linux-2.6.9-rc2-bk7/drivers/char/riscom8.c~msleep_interruptible-drivers_char_riscom8 2004-09-21 21:08:17.000000000 +0200
+++ linux-2.6.9-rc2-bk7-max/drivers/char/riscom8.c 2004-09-21 21:08:17.000000000 +0200
@@ -45,6 +45,7 @@
#include <linux/fcntl.h>
#include <linux/major.h>
#include <linux/init.h>
+#include <linux/delay.h>

#include <asm/uaccess.h>

@@ -1114,8 +1115,7 @@ static void rc_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))
break;
}
@@ -1130,8 +1130,7 @@ static void rc_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);
}
_