On Thu, Oct 24, 2002 at 11:32:43AM -0700, David Brownell wrote:
> void usb_hcd_giveback_urb (struct usb_hcd *hcd, struct urb *urb)
> --- ./drivers/usb-dist/core/hub.c Fri Oct 18 21:45:01 2002
> +++ ./drivers/usb/core/hub.c Wed Oct 23 09:43:01 2002
> @@ -120,4 +120,5 @@
> struct usb_hub *hub = (struct usb_hub *)urb->context;
> unsigned long flags;
> + int status;
>
> switch (urb->status) {
> @@ -132,5 +133,5 @@
> urb->dev->devpath, urb->status);
> if ((++hub->nerrors < 10) || hub->error)
> - return;
> + goto resubmit;
> hub->error = urb->status;
> /* FALL THROUGH */
> @@ -150,4 +151,10 @@
> }
> spin_unlock_irqrestore(&hub_event_lock, flags);
> +
> +resubmit:
> + if ((status = usb_submit_urb (hub->urb, GFP_ATOMIC)) != 0)
> + err ("hub '%s-%s' status %d for interrupt resubmit",
> + urb->dev->bus->bus_name, urb->dev->devpath,
> + status);
> }
Don't you have to set urb->dev before calling usb_submit_urb() again?
That's necessary for bulk urbs. Or do we have another difference in the
endpoint logic somethere? :)
thanks,
greg k-h
-------------------------------------------------------
This sf.net email is sponsored by: Influence the future
of Java(TM) technology. Join the Java Community
Process(SM) (JCP(SM)) program now.
http://ads.sourceforge.net/cgi-bin/redirect.pl?sunm0004en
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel