tty: fix termios input-speed encoding
authorJohan Hovold <johan@kernel.org>
Sun, 15 Jul 2018 13:39:33 +0000 (15:39 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 16 Jul 2018 09:58:15 +0000 (11:58 +0200)
Make sure to clear the CIBAUD bits before OR-ing the new mask when
encoding the termios input baud rate.

This could otherwise lead to an incorrect input rate being reported back
and incidentally set on subsequent termios updates.

Fixes: edc6afc54968 ("[PATCH] tty: switch to ktermios and new framework")
Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/tty_baudrate.c

index 6ff8cdfc9d2a7a4b29bf2e5d9a279629db757bfa..a7a438f54e694fab34490193c772990390953d9c 100644 (file)
@@ -169,6 +169,9 @@ void tty_termios_encode_baud_rate(struct ktermios *termios,
                ibinput = 1;    /* An input speed was specified */
 #endif
        termios->c_cflag &= ~CBAUD;
+#ifdef IBSHIFT
+       termios->c_cflag &= ~(CBAUD << IBSHIFT);
+#endif
 
        /*
         *      Our goal is to find a close match to the standard baud rate