]> git.baikalelectronics.ru Git - kernel.git/commit
serial: mvebu-uart: Fix local flags handling on termios update
authorMarc Zyngier <marc.zyngier@arm.com>
Sun, 22 Apr 2018 12:33:46 +0000 (13:33 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 22 Apr 2018 15:35:31 +0000 (17:35 +0200)
commit36bce0b1049a8a6e615f2a39365d29c507680f09
treecd8822bc213f648b549ac648b744f4d7e6935711
parentc401e3f890ee4318a0f3327855c908a0b4e42476
serial: mvebu-uart: Fix local flags handling on termios update

Commit fea9afbeba20 reworked the baud rate selection, but also added
a (not so) subtle change in the way the local flags (c_lflag in the
termios structure) are handled, forcing the new flags to always be the
same as the old ones.

The reason for that particular change is both obscure and undocumented.
It also completely breaks userspace. Something as trivial as getty is
unusable:

<example>
Debian GNU/Linux 9 sy-borg ttyMV0

sy-borg login: root
root
[timeout]

Debian GNU/Linux 9 sy-borg ttyMV0
</example>

which is quite obvious in retrospect: getty cannot get in control of
the echo mode, is stuck in canonical mode, and times out without ever
seeing anything valid. It also begs the question of how this change was
ever tested.

The fix is pretty obvious: stop messing with c_lflag, and the world
will be a happier place.

Cc: stable@vger.kernel.org # 4.15+
Fixes: fea9afbeba20 ("serial: mvebu-uart: add function to change baudrate")
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/mvebu-uart.c