]> Pileus Git - ~andy/linux/blobdiff - drivers/tty/tty_ldisc.c
Merge branch 'viafb-next' of git://github.com/schandinat/linux-2.6
[~andy/linux] / drivers / tty / tty_ldisc.c
index 5d01d32e2cf072fa26699fd7a7b19e77c7ff4f39..ef925d5817139417764e7b3d6dfc2108d86971c5 100644 (file)
@@ -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;