aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/serial/oti6858.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/serial/oti6858.c')
-rw-r--r--drivers/usb/serial/oti6858.c9
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);