Hi,

This patch make the usb_unlink_urb() behave like the usb-ohci and
usb-uhci controllers, so that it returns -EINPROGRESS with
asynchronous URBs. I originally submitted this patch during the
2.4.21-pre series, in the hope that it would make its way into
2.4.22. However, it doesn't seem to have been included yet. Is it too
late, or is there a problem with the patch?

Cheers,
Chris

--- linux-2.4.21/drivers/usb/host/uhci.c.orig   Fri Jun 13 21:20:37 2003
+++ linux-2.4.21/drivers/usb/host/uhci.c        Fri Jun 13 21:22:10 2003
@@ -1741,6 +1741,7 @@
        struct uhci *uhci;
        unsigned long flags;
        struct urb_priv *urbp = urb->hcpriv;
+       int ret;
 
        if (!urb)
                return -EINVAL;
@@ -1778,6 +1779,8 @@
 
        uhci_unlink_generic(uhci, urb);
 
+       ret = 0;
+
        /* Short circuit the virtual root hub */
        if (urb->dev == uhci->rh.dev) {
                rh_unlink_urb(urb);
@@ -1802,6 +1805,7 @@
 
                        spin_unlock(&urb->lock);
                        spin_unlock_irqrestore(&uhci->urb_list_lock, flags);
+                       ret = -EINPROGRESS;
 
                } else {
                        urb->status = -ENOENT;
@@ -1822,7 +1826,7 @@
                }
        }
 
-       return 0;
+       return ret;
 }
 
 static int uhci_fsbr_timeout(struct uhci *uhci, struct urb *urb)


-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to