USB: serial: metro-usb: drop redundant URB reinitialisation
authorJohan Hovold <johan@kernel.org>
Wed, 8 Feb 2017 12:49:19 +0000 (13:49 +0100)
committerJohan Hovold <johan@kernel.org>
Wed, 8 Feb 2017 18:28:02 +0000 (19:28 +0100)
No need to reinitialise the interrupt-in URB with values that have not
changed before (some) resubmissions.

This also allows the interrupt-in callback to have a single path for URB
resubmission.

Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Johan Hovold <johan@kernel.org>
drivers/usb/serial/metro-usb.c

index f220a470197ab662ecb8bf7a7c8df2b1d1f8389f..cc84da8dbb8495bc10bff34bcafd89a5960ec65e 100644 (file)
@@ -135,23 +135,8 @@ static void metrousb_read_int_callback(struct urb *urb)
        throttled = metro_priv->throttled;
        spin_unlock_irqrestore(&metro_priv->lock, flags);
 
-       /* Continue trying to read if set. */
-       if (!throttled) {
-               usb_fill_int_urb(port->interrupt_in_urb, port->serial->dev,
-                                usb_rcvintpipe(port->serial->dev, port->interrupt_in_endpointAddress),
-                                port->interrupt_in_urb->transfer_buffer,
-                                port->interrupt_in_urb->transfer_buffer_length,
-                                metrousb_read_int_callback, port, 1);
-
-               result = usb_submit_urb(port->interrupt_in_urb, GFP_ATOMIC);
-
-               if (result)
-                       dev_err(&port->dev,
-                               "%s - failed submitting interrupt in urb, error code=%d\n",
-                               __func__, result);
-       }
-       return;
-
+       if (throttled)
+               return;
 exit:
        /* Try to resubmit the urb. */
        result = usb_submit_urb(urb, GFP_ATOMIC);
@@ -337,7 +322,6 @@ static void metrousb_unthrottle(struct tty_struct *tty)
        spin_unlock_irqrestore(&metro_priv->lock, flags);
 
        /* Submit the urb to read from the port. */
-       port->interrupt_in_urb->dev = port->serial->dev;
        result = usb_submit_urb(port->interrupt_in_urb, GFP_ATOMIC);
        if (result)
                dev_err(tty->dev,