• Johan Hovold's avatar
    USB: serial: ftdi_sio: fix line-status over-reporting · 22034ee5
    Johan Hovold authored
    commit a6bb1e17 upstream.
    
    FTDI devices use a receive latency timer to periodically empty the
    receive buffer and report modem and line status (also when the buffer is
    empty).
    
    When a break or error condition is detected the corresponding status
    flags will be set on a packet with nonzero data payload and the flags
    are not updated until the break is over or further characters are
    received.
    
    In order to avoid over-reporting break and error conditions, these flags
    must therefore only be processed for packets with payload.
    
    This specifically fixes the case where after an overrun, the error
    condition is continuously reported and NULL-characters inserted until
    further data is received.
    Reported-by: default avatarMichael Walle <michael@walle.cc>
    Fixes: 72fda3ca ("USB: serial: ftd_sio: implement sysrq handling on
    break")
    Fixes: 166ceb69 ("USB: ftdi_sio: clean up line-status handling")
    Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    22034ee5
ftdi_sio.c 91.7 KB