ChangeSet 1.883.3.13, 2002/12/17 21:51:57-08:00, oliver@neukum.name

[PATCH] USB: fix an unlinking race in speedtouch driver

checking for -EINPROGRESS is wrong.


diff -Nru a/drivers/usb/misc/speedtouch.c b/drivers/usb/misc/speedtouch.c
--- a/drivers/usb/misc/speedtouch.c	Wed Dec 18 00:34:26 2002
+++ b/drivers/usb/misc/speedtouch.c	Wed Dec 18 00:34:26 2002
@@ -852,8 +852,7 @@
 		if ((!ctx->urb) || (!ctx->skb))
 			continue;
 
-		if (ctx->urb->status == -EINPROGRESS)
-			usb_unlink_urb (ctx->urb);
+		usb_unlink_urb (ctx->urb);
 
 		usb_free_urb (ctx->urb);
 		kfree_skb (ctx->skb);
@@ -863,8 +862,7 @@
 	for (i = 0; i < UDSL_NUMBER_SND_URBS; i++) {
 		struct udsl_usb_send_data_context *ctx = &(instance->send_ctx[i]);
 
-		if (ctx->urb->status == -EINPROGRESS)
-			usb_unlink_urb (ctx->urb);
+		usb_unlink_urb (ctx->urb);
 
 		if (ctx->skb)
 			ctx->vcc->pop (ctx->vcc, ctx->skb);
