• Johan Hovold's avatar
    tty: fix termios input-speed encoding when using BOTHER · 1cee38f0
    Johan Hovold authored
    When the termios CIBAUD bits are left unset (i.e. B0), we use the same
    output and input speed and should leave CIBAUD unchanged.
    
    When the user requests a rate using BOTHER and c_ospeed which the driver
    cannot set exactly, the driver can report back the actual baud rate
    using tty_termios_encode_baud_rate(). If this rate is close enough to a
    standard rate however, we could end up setting CIBAUD to a Bfoo value
    despite the user having left it unset.
    
    This in turn could lead to an unexpected input rate being set on
    subsequent termios updates.
    
    Fix this by using a zero tolerance value also for the input rate when
    CIBAUD is clear so that the matching logic works as expected.
    
    Fixes: 78137e3b ("[PATCH] tty: improve encode_baud_rate logic")
    Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    1cee38f0
tty_baudrate.c 6.48 KB