tty ldisc: Close/Reopen race prevention should check the proper flag
authorShachar Shemesh <shachar@liveu.tv>
Tue, 10 Jul 2012 04:54:13 +0000 (07:54 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 26 Jul 2012 20:37:06 +0000 (13:37 -0700)
Commit acfa747b introduced the TTY_HUPPING flag to distinguish
closed TTY from currently closing ones. The test in tty_set_ldisc
still remained pointing at the old flag. This causes pppd to
sometimes lapse into uninterruptible sleep when killed and
restarted.

Signed-off-by: Shachar Shemesh <shachar@liveu.tv>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/tty_ldisc.c

index 9911eb6b34cd06c772cadf9761647b1dc5828487..6f99c9959f0c8f5db9c950810a8196e0907415b2 100644 (file)
@@ -659,7 +659,7 @@ int tty_set_ldisc(struct tty_struct *tty, int ldisc)
                goto enable;
        }
 
-       if (test_bit(TTY_HUPPED, &tty->flags)) {
+       if (test_bit(TTY_HUPPING, &tty->flags)) {
                /* We were raced by the hangup method. It will have stomped
                   the ldisc data and closed the ldisc down */
                clear_bit(TTY_LDISC_CHANGING, &tty->flags);