diff options
Diffstat (limited to 'drivers/usb/serial/oti6858.c')
-rw-r--r-- | drivers/usb/serial/oti6858.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/usb/serial/oti6858.c b/drivers/usb/serial/oti6858.c index d217fd6ee43f..a958fd41b5b3 100644 --- a/drivers/usb/serial/oti6858.c +++ b/drivers/usb/serial/oti6858.c | |||
@@ -820,7 +820,6 @@ static void oti6858_read_bulk_callback(struct urb *urb) | |||
820 | { | 820 | { |
821 | struct usb_serial_port *port = urb->context; | 821 | struct usb_serial_port *port = urb->context; |
822 | struct oti6858_private *priv = usb_get_serial_port_data(port); | 822 | struct oti6858_private *priv = usb_get_serial_port_data(port); |
823 | struct tty_struct *tty; | ||
824 | unsigned char *data = urb->transfer_buffer; | 823 | unsigned char *data = urb->transfer_buffer; |
825 | unsigned long flags; | 824 | unsigned long flags; |
826 | int status = urb->status; | 825 | int status = urb->status; |
@@ -835,12 +834,10 @@ static void oti6858_read_bulk_callback(struct urb *urb) | |||
835 | return; | 834 | return; |
836 | } | 835 | } |
837 | 836 | ||
838 | tty = tty_port_tty_get(&port->port); | 837 | if (urb->actual_length > 0) { |
839 | if (tty != NULL && urb->actual_length > 0) { | 838 | tty_insert_flip_string(&port->port, data, urb->actual_length); |
840 | tty_insert_flip_string(tty, data, urb->actual_length); | 839 | tty_flip_buffer_push(&port->port); |
841 | tty_flip_buffer_push(tty); | ||
842 | } | 840 | } |
843 | tty_kref_put(tty); | ||
844 | 841 | ||
845 | /* schedule the interrupt urb */ | 842 | /* schedule the interrupt urb */ |
846 | result = usb_submit_urb(port->interrupt_in_urb, GFP_ATOMIC); | 843 | result = usb_submit_urb(port->interrupt_in_urb, GFP_ATOMIC); |