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