From 279fd966ce9101f497c112a8457377a450debe2d Mon Sep 17 00:00:00 2001 From: Jiri Slaby Date: Sun, 5 Jun 2011 14:16:16 +0200 Subject: [PATCH] --- yaml --- r: 254137 b: refs/heads/master c: 92f6fa09bd453ffe3351fa1f1377a1b7cfa911e6 h: refs/heads/master i: 254135: f92e3d8944bba8fbb307ac5dd1aa5cf63da34766 v: v3 --- [refs] | 2 +- trunk/drivers/tty/tty_ldisc.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 2d0e50b70306..65784770857f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: cb01ece3ea5dec16ac7bab30069c7736b59f7dea +refs/heads/master: 92f6fa09bd453ffe3351fa1f1377a1b7cfa911e6 diff --git a/trunk/drivers/tty/tty_ldisc.c b/trunk/drivers/tty/tty_ldisc.c index 5d01d32e2cf0..ef925d581713 100644 --- a/trunk/drivers/tty/tty_ldisc.c +++ b/trunk/drivers/tty/tty_ldisc.c @@ -555,7 +555,7 @@ static void tty_ldisc_flush_works(struct tty_struct *tty) static int tty_ldisc_wait_idle(struct tty_struct *tty) { int ret; - ret = wait_event_interruptible_timeout(tty_ldisc_idle, + ret = wait_event_timeout(tty_ldisc_idle, atomic_read(&tty->ldisc->users) == 1, 5 * HZ); if (ret < 0) return ret; @@ -763,6 +763,8 @@ static int tty_ldisc_reinit(struct tty_struct *tty, int ldisc) if (IS_ERR(ld)) return -1; + WARN_ON_ONCE(tty_ldisc_wait_idle(tty)); + tty_ldisc_close(tty, tty->ldisc); tty_ldisc_put(tty->ldisc); tty->ldisc = NULL;