diff options
Diffstat (limited to 'drivers/usb/serial/spcp8x5.c')
-rw-r--r-- | drivers/usb/serial/spcp8x5.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/usb/serial/spcp8x5.c b/drivers/usb/serial/spcp8x5.c index 283cf6b36b2c..1533d6e12238 100644 --- a/drivers/usb/serial/spcp8x5.c +++ b/drivers/usb/serial/spcp8x5.c | |||
@@ -755,7 +755,7 @@ static void spcp8x5_read_bulk_callback(struct urb *urb) | |||
755 | tty_flag = TTY_FRAME; | 755 | tty_flag = TTY_FRAME; |
756 | dev_dbg(&port->dev, "tty_flag = %d\n", tty_flag); | 756 | dev_dbg(&port->dev, "tty_flag = %d\n", tty_flag); |
757 | 757 | ||
758 | tty = port->port.tty; | 758 | tty = tty_port_tty_get(&port->port); |
759 | if (tty && urb->actual_length) { | 759 | if (tty && urb->actual_length) { |
760 | tty_buffer_request_room(tty, urb->actual_length + 1); | 760 | tty_buffer_request_room(tty, urb->actual_length + 1); |
761 | /* overrun is special, not associated with a char */ | 761 | /* overrun is special, not associated with a char */ |
@@ -765,6 +765,7 @@ static void spcp8x5_read_bulk_callback(struct urb *urb) | |||
765 | tty_insert_flip_char(tty, data[i], tty_flag); | 765 | tty_insert_flip_char(tty, data[i], tty_flag); |
766 | tty_flip_buffer_push(tty); | 766 | tty_flip_buffer_push(tty); |
767 | } | 767 | } |
768 | tty_kref_put(tty); | ||
768 | 769 | ||
769 | /* Schedule the next read _if_ we are still open */ | 770 | /* Schedule the next read _if_ we are still open */ |
770 | if (port->port.count) { | 771 | if (port->port.count) { |