X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=kernel%2Fdrivers%2Ftty%2Ftty_ldisc.c;fp=kernel%2Fdrivers%2Ftty%2Ftty_ldisc.c;h=9bee25cfa0be5e5a39cd00a2aa8e2fd57ac69096;hb=52f993b8e89487ec9ee15a7fb4979e0f09a45b27;hp=629e3c865072035f14fd4e6ece5a2544bcbf713c;hpb=c189ccac5702322ed843fe17057035b7222a59b6;p=kvmfornfv.git diff --git a/kernel/drivers/tty/tty_ldisc.c b/kernel/drivers/tty/tty_ldisc.c index 629e3c865..9bee25cfa 100644 --- a/kernel/drivers/tty/tty_ldisc.c +++ b/kernel/drivers/tty/tty_ldisc.c @@ -417,6 +417,10 @@ EXPORT_SYMBOL_GPL(tty_ldisc_flush); * they are not on hot paths so a little discipline won't do * any harm. * + * The line discipline-related tty_struct fields are reset to + * prevent the ldisc driver from re-using stale information for + * the new ldisc instance. + * * Locking: takes termios_rwsem */ @@ -425,6 +429,9 @@ static void tty_set_termios_ldisc(struct tty_struct *tty, int num) down_write(&tty->termios_rwsem); tty->termios.c_line = num; up_write(&tty->termios_rwsem); + + tty->disc_data = NULL; + tty->receive_room = 0; } /**