]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/usb/serial/spcp8x5.c
USB: serial: fix up urb->status usage
[linux-2.6-omap-h63xx.git] / drivers / usb / serial / spcp8x5.c
index a65bc2bd8e710f0cd32d61777de7c0630be9077a..5e7528cc81a8e624f8ef64a869eca06b18918126 100644 (file)
@@ -709,21 +709,20 @@ static void spcp8x5_read_bulk_callback(struct urb *urb)
        unsigned char *data = urb->transfer_buffer;
        unsigned long flags;
        int i;
-       int result;
-       u8 status = 0;
+       int result = urb->status;
+       u8 status;
        char tty_flag;
 
-       dev_dbg(&port->dev, "start, urb->status = %d, "
-               "urb->actual_length = %d\n,", urb->status, urb->actual_length);
+       dev_dbg(&port->dev, "start, result = %d, urb->actual_length = %d\n,",
+               result, urb->actual_length);
 
        /* check the urb status */
-       if (urb->status) {
+       if (result) {
                if (!port->port.count)
                        return;
-               if (urb->status == -EPROTO) {
+               if (result == -EPROTO) {
                        /* spcp8x5 mysteriously fails with -EPROTO */
                        /* reschedule the read */
-                       urb->status = 0;
                        urb->dev = port->serial->dev;
                        result = usb_submit_urb(urb , GFP_ATOMIC);
                        if (result)
@@ -833,8 +832,9 @@ static void spcp8x5_write_bulk_callback(struct urb *urb)
        struct usb_serial_port *port = urb->context;
        struct spcp8x5_private *priv = usb_get_serial_port_data(port);
        int result;
+       int status = urb->status;
 
-       switch (urb->status) {
+       switch (status) {
        case 0:
                /* success */
                break;
@@ -843,14 +843,14 @@ static void spcp8x5_write_bulk_callback(struct urb *urb)
        case -ESHUTDOWN:
                /* this urb is terminated, clean up */
                dev_dbg(&port->dev, "urb shutting down with status: %d\n",
-                       urb->status);
+                       status);
                priv->write_urb_in_use = 0;
                return;
        default:
                /* error in the urb, so we have to resubmit it */
                dbg("%s - Overflow in write", __func__);
                dbg("%s - nonzero write bulk status received: %d",
-                       __func__, urb->status);
+                       __func__, status);
                port->write_urb->transfer_buffer_length = 1;
                port->write_urb->dev = port->serial->dev;
                result = usb_submit_urb(port->write_urb, GFP_ATOMIC);