tty: Prevent ldisc drivers from re-using stale tty fields
[pandora-kernel.git] / drivers / tty / tty_ldisc.c
index 8e0924f..82358c2 100644 (file)
@@ -424,6 +424,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_mutex
  */
 
@@ -432,6 +436,9 @@ static void tty_set_termios_ldisc(struct tty_struct *tty, int num)
        mutex_lock(&tty->termios_mutex);
        tty->termios->c_line = num;
        mutex_unlock(&tty->termios_mutex);
+
+       tty->disc_data = NULL;
+       tty->receive_room = 0;
 }
 
 /**