aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/serial/keyspan.c8
-rw-r--r--drivers/usb/serial/option.c8
2 files changed, 2 insertions, 14 deletions
diff --git a/drivers/usb/serial/keyspan.c b/drivers/usb/serial/keyspan.c
index fb0926292228..3b958e60f5e8 100644
--- a/drivers/usb/serial/keyspan.c
+++ b/drivers/usb/serial/keyspan.c
@@ -383,11 +383,8 @@ static int keyspan_write(struct usb_serial_port *port,
383 dbg("%s - endpoint %d flip %d", __FUNCTION__, usb_pipeendpoint(this_urb->pipe), flip); 383 dbg("%s - endpoint %d flip %d", __FUNCTION__, usb_pipeendpoint(this_urb->pipe), flip);
384 384
385 if (this_urb->status == -EINPROGRESS) { 385 if (this_urb->status == -EINPROGRESS) {
386 if (this_urb->transfer_flags & URB_ASYNC_UNLINK)
387 break;
388 if (time_before(jiffies, p_priv->tx_start_time[flip] + 10 * HZ)) 386 if (time_before(jiffies, p_priv->tx_start_time[flip] + 10 * HZ))
389 break; 387 break;
390 this_urb->transfer_flags |= URB_ASYNC_UNLINK;
391 usb_unlink_urb(this_urb); 388 usb_unlink_urb(this_urb);
392 break; 389 break;
393 } 390 }
@@ -402,7 +399,6 @@ static int keyspan_write(struct usb_serial_port *port,
402 /* send the data out the bulk port */ 399 /* send the data out the bulk port */
403 this_urb->transfer_buffer_length = todo + dataOffset; 400 this_urb->transfer_buffer_length = todo + dataOffset;
404 401
405 this_urb->transfer_flags &= ~URB_ASYNC_UNLINK;
406 this_urb->dev = port->serial->dev; 402 this_urb->dev = port->serial->dev;
407 if ((err = usb_submit_urb(this_urb, GFP_ATOMIC)) != 0) { 403 if ((err = usb_submit_urb(this_urb, GFP_ATOMIC)) != 0) {
408 dbg("usb_submit_urb(write bulk) failed (%d)", err); 404 dbg("usb_submit_urb(write bulk) failed (%d)", err);
@@ -1119,10 +1115,8 @@ static int keyspan_open (struct usb_serial_port *port, struct file *filp)
1119 1115
1120static inline void stop_urb(struct urb *urb) 1116static inline void stop_urb(struct urb *urb)
1121{ 1117{
1122 if (urb && urb->status == -EINPROGRESS) { 1118 if (urb && urb->status == -EINPROGRESS)
1123 urb->transfer_flags &= ~URB_ASYNC_UNLINK;
1124 usb_kill_urb(urb); 1119 usb_kill_urb(urb);
1125 }
1126} 1120}
1127 1121
1128static void keyspan_close(struct usb_serial_port *port, struct file *filp) 1122static void keyspan_close(struct usb_serial_port *port, struct file *filp)
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
index 4f985f43e79e..92d0f925d053 100644
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -273,12 +273,9 @@ static int option_write(struct usb_serial_port *port,
273 273
274 this_urb = portdata->out_urbs[i]; 274 this_urb = portdata->out_urbs[i];
275 if (this_urb->status == -EINPROGRESS) { 275 if (this_urb->status == -EINPROGRESS) {
276 if (this_urb->transfer_flags & URB_ASYNC_UNLINK)
277 continue;
278 if (time_before(jiffies, 276 if (time_before(jiffies,
279 portdata->tx_start_time[i] + 10 * HZ)) 277 portdata->tx_start_time[i] + 10 * HZ))
280 continue; 278 continue;
281 this_urb->transfer_flags |= URB_ASYNC_UNLINK;
282 usb_unlink_urb(this_urb); 279 usb_unlink_urb(this_urb);
283 continue; 280 continue;
284 } 281 }
@@ -293,7 +290,6 @@ static int option_write(struct usb_serial_port *port,
293 memcpy (this_urb->transfer_buffer, buf, todo); 290 memcpy (this_urb->transfer_buffer, buf, todo);
294 this_urb->transfer_buffer_length = todo; 291 this_urb->transfer_buffer_length = todo;
295 292
296 this_urb->transfer_flags &= ~URB_ASYNC_UNLINK;
297 this_urb->dev = port->serial->dev; 293 this_urb->dev = port->serial->dev;
298 err = usb_submit_urb(this_urb, GFP_ATOMIC); 294 err = usb_submit_urb(this_urb, GFP_ATOMIC);
299 if (err) { 295 if (err) {
@@ -513,10 +509,8 @@ static int option_open(struct usb_serial_port *port, struct file *filp)
513 509
514static inline void stop_urb(struct urb *urb) 510static inline void stop_urb(struct urb *urb)
515{ 511{
516 if (urb && urb->status == -EINPROGRESS) { 512 if (urb && urb->status == -EINPROGRESS)
517 urb->transfer_flags &= ~URB_ASYNC_UNLINK;
518 usb_kill_urb(urb); 513 usb_kill_urb(urb);
519 }
520} 514}
521 515
522static void option_close(struct usb_serial_port *port, struct file *filp) 516static void option_close(struct usb_serial_port *port, struct file *filp)