diff options
Diffstat (limited to 'drivers/usb/serial/ftdi_sio.c')
-rw-r--r-- | drivers/usb/serial/ftdi_sio.c | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c index eb59ba3789ad..a96083b7fabc 100644 --- a/drivers/usb/serial/ftdi_sio.c +++ b/drivers/usb/serial/ftdi_sio.c | |||
@@ -2040,25 +2040,19 @@ static int ftdi_process_packet(struct usb_serial_port *port, | |||
2040 | static void ftdi_process_read_urb(struct urb *urb) | 2040 | static void ftdi_process_read_urb(struct urb *urb) |
2041 | { | 2041 | { |
2042 | struct usb_serial_port *port = urb->context; | 2042 | struct usb_serial_port *port = urb->context; |
2043 | struct tty_struct *tty; | ||
2044 | struct ftdi_private *priv = usb_get_serial_port_data(port); | 2043 | struct ftdi_private *priv = usb_get_serial_port_data(port); |
2045 | char *data = (char *)urb->transfer_buffer; | 2044 | char *data = (char *)urb->transfer_buffer; |
2046 | int i; | 2045 | int i; |
2047 | int len; | 2046 | int len; |
2048 | int count = 0; | 2047 | int count = 0; |
2049 | 2048 | ||
2050 | tty = tty_port_tty_get(&port->port); | ||
2051 | if (!tty) | ||
2052 | return; | ||
2053 | |||
2054 | for (i = 0; i < urb->actual_length; i += priv->max_packet_size) { | 2049 | for (i = 0; i < urb->actual_length; i += priv->max_packet_size) { |
2055 | len = min_t(int, urb->actual_length - i, priv->max_packet_size); | 2050 | len = min_t(int, urb->actual_length - i, priv->max_packet_size); |
2056 | count += ftdi_process_packet(port, priv, &data[i], len); | 2051 | count += ftdi_process_packet(port, priv, &data[i], len); |
2057 | } | 2052 | } |
2058 | 2053 | ||
2059 | if (count) | 2054 | if (count) |
2060 | tty_flip_buffer_push(tty); | 2055 | tty_flip_buffer_push(&port->port); |
2061 | tty_kref_put(tty); | ||
2062 | } | 2056 | } |
2063 | 2057 | ||
2064 | static void ftdi_break_ctl(struct tty_struct *tty, int break_state) | 2058 | static void ftdi_break_ctl(struct tty_struct *tty, int break_state) |