Message ID | 20190108201849.11907-6-gpiccoli@canonical.com |
---|---|
State | New |
Headers | show |
Series | Line discipline buffer flush/tty_reopen() race fix | expand |
diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c index 3784f55f3dc9..a7511d5fad9e 100644 --- a/drivers/tty/tty_io.c +++ b/drivers/tty/tty_io.c @@ -1490,16 +1490,13 @@ static int tty_reopen(struct tty_struct *tty) if (retval) return retval; - tty->count++; - if (tty->ldisc) - goto out_unlock; - - retval = tty_ldisc_reinit(tty, tty->termios.c_line); - if (retval) - tty->count--; - -out_unlock: + if (!tty->ldisc) + retval = tty_ldisc_reinit(tty, tty->termios.c_line); tty_ldisc_unlock(tty); + + if (retval == 0) + tty->count++; + return retval; }