On Mon, 30 Jul 2007 17:04:37 -0400 (EDT), Alan Stern <[EMAIL PROTECTED]> wrote:
> @@ -1149,10 +1148,6 @@ int usb_hcd_unlink_urb (struct urb *urb,
> return -EINVAL;
> if (!urb->dev || !urb->dev->bus)
> return -ENODEV;
> - ep = (usb_pipein(urb->pipe) ? urb->dev->ep_in : urb->dev->ep_out)
> - [usb_pipeendpoint(urb->pipe)];
> - if (!ep)
> - return -ENODEV;
>
> /*
> * we contend for urb->status with the hcd core,
> @@ -1176,7 +1171,7 @@ int usb_hcd_unlink_urb (struct urb *urb,
> }
>
> /* insist the urb is still queued */
> - list_for_each(tmp, &ep->urb_list) {
> + list_for_each(tmp, &urb->ep->urb_list) {
> if (tmp == &urb->urb_list)
> break;
> }
I am afraid that drivers call unlink left and right, even on URBs which
were not submitted and thus have ->ep == NULL. But on the other hand,
maybe we want to catch them...
-- Pete
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel