]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/usb/serial/digi_acceleport.c
USB: serial: fix up urb->status usage
[linux-2.6-omap-h63xx.git] / drivers / usb / serial / digi_acceleport.c
index 69f84f0ea6fe71c0e319a5d38d21d6da10ecb171..38ba4ea8b6bfdf1b84b69d9338cd9c3154d60e51 100644 (file)
@@ -635,8 +635,7 @@ static int digi_write_oob_command(struct usb_serial_port *port,
 
        spin_lock_irqsave(&oob_priv->dp_port_lock, flags);
        while (count > 0) {
-               while (oob_port->write_urb->status == -EINPROGRESS
-                       || oob_priv->dp_write_urb_in_use) {
+               while (oob_priv->dp_write_urb_in_use) {
                        cond_wait_interruptible_timeout_irqrestore(
                                &oob_port->write_wait, DIGI_RETRY_TIMEOUT,
                                &oob_priv->dp_port_lock, flags);
@@ -699,9 +698,8 @@ static int digi_write_inb_command(struct usb_serial_port *port,
 
        spin_lock_irqsave(&priv->dp_port_lock, flags);
        while (count > 0 && ret == 0) {
-               while ((port->write_urb->status == -EINPROGRESS
-                               || priv->dp_write_urb_in_use)
-                                       && time_before(jiffies, timeout)) {
+               while (priv->dp_write_urb_in_use &&
+                      time_before(jiffies, timeout)) {
                        cond_wait_interruptible_timeout_irqrestore(
                                &port->write_wait, DIGI_RETRY_TIMEOUT,
                                &priv->dp_port_lock, flags);
@@ -779,8 +777,7 @@ static int digi_set_modem_signals(struct usb_serial_port *port,
        spin_lock_irqsave(&oob_priv->dp_port_lock, flags);
        spin_lock(&port_priv->dp_port_lock);
 
-       while (oob_port->write_urb->status == -EINPROGRESS ||
-                                       oob_priv->dp_write_urb_in_use) {
+       while (oob_priv->dp_write_urb_in_use) {
                spin_unlock(&port_priv->dp_port_lock);
                cond_wait_interruptible_timeout_irqrestore(
                        &oob_port->write_wait, DIGI_RETRY_TIMEOUT,
@@ -1168,12 +1165,10 @@ static int digi_write(struct tty_struct *tty, struct usb_serial_port *port,
 
        /* be sure only one write proceeds at a time */
        /* there are races on the port private buffer */
-       /* and races to check write_urb->status */
        spin_lock_irqsave(&priv->dp_port_lock, flags);
 
        /* wait for urb status clear to submit another urb */
-       if (port->write_urb->status == -EINPROGRESS ||
-                                       priv->dp_write_urb_in_use) {
+       if (priv->dp_write_urb_in_use) {
                /* buffer data if count is 1 (probably put_char) if possible */
                if (count == 1 && priv->dp_out_buf_len < DIGI_OUT_BUF_SIZE) {
                        priv->dp_out_buf[priv->dp_out_buf_len++] = *buf;
@@ -1236,7 +1231,7 @@ static void digi_write_bulk_callback(struct urb *urb)
        int ret = 0;
        int status = urb->status;
 
-       dbg("digi_write_bulk_callback: TOP, urb->status=%d", status);
+       dbg("digi_write_bulk_callback: TOP, status=%d", status);
 
        /* port and serial sanity check */
        if (port == NULL || (priv = usb_get_serial_port_data(port)) == NULL) {
@@ -1266,8 +1261,7 @@ static void digi_write_bulk_callback(struct urb *urb)
        /* try to send any buffered data on this port, if it is open */
        spin_lock(&priv->dp_port_lock);
        priv->dp_write_urb_in_use = 0;
-       if (port->port.count && port->write_urb->status != -EINPROGRESS
-           && priv->dp_out_buf_len > 0) {
+       if (port->port.count && priv->dp_out_buf_len > 0) {
                *((unsigned char *)(port->write_urb->transfer_buffer))
                        = (unsigned char)DIGI_CMD_SEND_DATA;
                *((unsigned char *)(port->write_urb->transfer_buffer) + 1)
@@ -1305,8 +1299,7 @@ static int digi_write_room(struct tty_struct *tty)
 
        spin_lock_irqsave(&priv->dp_port_lock, flags);
 
-       if (port->write_urb->status == -EINPROGRESS ||
-                                       priv->dp_write_urb_in_use)
+       if (priv->dp_write_urb_in_use)
                room = 0;
        else
                room = port->bulk_out_size - 2 - priv->dp_out_buf_len;
@@ -1322,8 +1315,7 @@ static int digi_chars_in_buffer(struct tty_struct *tty)
        struct usb_serial_port *port = tty->driver_data;
        struct digi_port *priv = usb_get_serial_port_data(port);
 
-       if (port->write_urb->status == -EINPROGRESS
-           || priv->dp_write_urb_in_use) {
+       if (priv->dp_write_urb_in_use) {
                dbg("digi_chars_in_buffer: port=%d, chars=%d",
                        priv->dp_port_num, port->bulk_out_size - 2);
                /* return(port->bulk_out_size - 2); */
@@ -1702,7 +1694,7 @@ static int digi_read_inb_callback(struct urb *urb)
        /* short/multiple packet check */
        if (urb->actual_length != len + 2) {
                dev_err(&port->dev, "%s: INCOMPLETE OR MULTIPLE PACKET, "
-                       "urb->status=%d, port=%d, opcode=%d, len=%d, "
+                       "status=%d, port=%d, opcode=%d, len=%d, "
                        "actual_length=%d, status=%d\n", __func__, status,
                        priv->dp_port_num, opcode, len, urb->actual_length,
                        port_status);