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

Reply via email to