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/
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to