Commit 1e8d16df authored by Johan Hovold's avatar Johan Hovold Committed by Ben Hutchings

USB: keyspan: fix overrun-error reporting

commit 855515a6 upstream.

Fix reporting of overrun errors, which are not associated with a
character. Instead insert a null character and report only once.

Fixes: 1da177e4 ("Linux-2.6.12-rc2")
Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
[bwh: Backported to 3.2:
 - s/\&port->port/tty/
 - Adjust context, indentation]
Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
parent 25c5feef
......@@ -437,12 +437,11 @@ static void usa26_indat_callback(struct urb *urb)
if ((data[0] & 0x80) == 0) {
/* no errors on individual bytes, only
possible overrun err */
if (data[0] & RXERROR_OVERRUN)
err = TTY_OVERRUN;
else
err = 0;
if (data[0] & RXERROR_OVERRUN) {
tty_insert_flip_char(tty, 0, TTY_OVERRUN);
}
for (i = 1; i < urb->actual_length ; ++i)
tty_insert_flip_char(tty, data[i], err);
tty_insert_flip_char(tty, data[i], TTY_NORMAL);
} else {
/* some bytes had errors, every byte has status */
dbg("%s - RX error!!!!", __func__);
......@@ -982,13 +981,13 @@ static void usa90_indat_callback(struct urb *urb)
if ((data[0] & 0x80) == 0) {
/* no errors on individual bytes, only
possible overrun err*/
if (data[0] & RXERROR_OVERRUN)
err = TTY_OVERRUN;
else
err = 0;
if (data[0] & RXERROR_OVERRUN) {
tty_insert_flip_char(tty, 0,
TTY_OVERRUN);
}
for (i = 1; i < urb->actual_length ; ++i)
tty_insert_flip_char(tty, data[i],
err);
TTY_NORMAL);
} else {
/* some bytes had errors, every byte has status */
dbg("%s - RX error!!!!", __func__);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment