USB: serial: use variable for status
authorOliver Neukum <oneukum@suse.com>
Thu, 14 Jul 2016 13:01:40 +0000 (15:01 +0200)
committerJohan Hovold <johan@kernel.org>
Sat, 16 Jul 2016 10:45:39 +0000 (12:45 +0200)
This patch turns status in a variable read once from the URB.
The long term plan is to deliver status to the callback.
In addition it makes the code a bit more elegant.

Signed-off-by: Oliver Neukum <oneukum@suse.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
drivers/usb/serial/generic.c

index ae8c0365abd6a8c46cbac05943574751360ca175..944de657a07a8d2957a88a599474bff57cfdee62 100644 (file)
@@ -350,6 +350,7 @@ void usb_serial_generic_read_bulk_callback(struct urb *urb)
        struct usb_serial_port *port = urb->context;
        unsigned char *data = urb->transfer_buffer;
        unsigned long flags;
+       int status = urb->status;
        int i;
 
        for (i = 0; i < ARRAY_SIZE(port->read_urbs); ++i) {
@@ -360,22 +361,22 @@ void usb_serial_generic_read_bulk_callback(struct urb *urb)
 
        dev_dbg(&port->dev, "%s - urb %d, len %d\n", __func__, i,
                                                        urb->actual_length);
-       switch (urb->status) {
+       switch (status) {
        case 0:
                break;
        case -ENOENT:
        case -ECONNRESET:
        case -ESHUTDOWN:
                dev_dbg(&port->dev, "%s - urb stopped: %d\n",
-                                                       __func__, urb->status);
+                                                       __func__, status);
                return;
        case -EPIPE:
                dev_err(&port->dev, "%s - urb stopped: %d\n",
-                                                       __func__, urb->status);
+                                                       __func__, status);
                return;
        default:
                dev_dbg(&port->dev, "%s - nonzero urb status: %d\n",
-                                                       __func__, urb->status);
+                                                       __func__, status);
                goto resubmit;
        }
 
@@ -399,6 +400,7 @@ void usb_serial_generic_write_bulk_callback(struct urb *urb)
 {
        unsigned long flags;
        struct usb_serial_port *port = urb->context;
+       int status = urb->status;
        int i;
 
        for (i = 0; i < ARRAY_SIZE(port->write_urbs); ++i) {
@@ -410,22 +412,22 @@ void usb_serial_generic_write_bulk_callback(struct urb *urb)
        set_bit(i, &port->write_urbs_free);
        spin_unlock_irqrestore(&port->lock, flags);
 
-       switch (urb->status) {
+       switch (status) {
        case 0:
                break;
        case -ENOENT:
        case -ECONNRESET:
        case -ESHUTDOWN:
                dev_dbg(&port->dev, "%s - urb stopped: %d\n",
-                                                       __func__, urb->status);
+                                                       __func__, status);
                return;
        case -EPIPE:
                dev_err_console(port, "%s - urb stopped: %d\n",
-                                                       __func__, urb->status);
+                                                       __func__, status);
                return;
        default:
                dev_err_console(port, "%s - nonzero urb status: %d\n",
-                                                       __func__, urb->status);
+                                                       __func__, status);
                goto resubmit;
        }