]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
USB: pl2303: fix error characters not being reported to ldisc
authorJohan Hovold <jhovold@gmail.com>
Thu, 8 Oct 2009 09:36:46 +0000 (11:36 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 22 Oct 2009 22:11:48 +0000 (15:11 -0700)
commit 9388e2e71a51fab0aa2309bbb45e8a23d89a95a9 upstream.

Fix regression introduced by commit
d4fc4a7bfc2dee626f4fec1e209e58eaa4312de6 (tty: Fix the PL2303 private
methods for sysrq).

Signed-off-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/serial/pl2303.c

index 124d5ae147c1cd883732888b3d8de7e2360543cc..600097de714fb08f65447ed3e0b1182160e4b69c 100644 (file)
@@ -995,13 +995,15 @@ static void pl2303_push_data(struct tty_struct *tty,
        /* overrun is special, not associated with a char */
        if (line_status & UART_OVERRUN_ERROR)
                tty_insert_flip_char(tty, 0, TTY_OVERRUN);
-       if (port->console && port->sysrq) {
+
+       if (tty_flag == TTY_NORMAL && !(port->console && port->sysrq))
+               tty_insert_flip_string(tty, data, urb->actual_length);
+       else {
                int i;
                for (i = 0; i < urb->actual_length; ++i)
                        if (!usb_serial_handle_sysrq_char(tty, port, data[i]))
                                tty_insert_flip_char(tty, data[i], tty_flag);
-       } else
-               tty_insert_flip_string(tty, data, urb->actual_length);
+       }
        tty_flip_buffer_push(tty);
 }