On Wed, 16 Oct 2002, David Brownell wrote:

>Dan Streetman wrote:
>> After the interrupt queueing was added, I don't think the old way of 
>> resetting interrupts will work anymore.  This patch changes it to simply 
>> do a full unlink and resubmission automatically.  Note that since 
>> usb_hcd_giveback_urb() is never called for a resubmitting interrupt URB, 
>> that means whatever gets released in usb_hcd_giveback_urb() won't get 
>> released for that URB.  The only way to work around that is call 
>> usb_hcd_giveback_urb after the user unlinks in their completion handler, 
>> which will call the completion handler again with -ECONNRESET 
>> status...which wouldn't be all that bad, but the drivers have to expect 
>> it.
>
>Can't you just giveback() in the first place if you know it's
>already been unlinked?

the problem is, the driver unlinks it in urb->complete, so if the urb was 
then passed to giveback(), the urb->complete would get called again with 
status -ECONNRESET.  I think that should be fine in general, (and would 
clean up correctly), but I don't think that's what the behavior was 
before, and I was trying to keep the behavior consistent.



-- 
Dan Streetman
[EMAIL PROTECTED]
---------------------
186,272 miles per second:
It isn't just a good idea, it's the law!



-------------------------------------------------------
This sf.net email is sponsored by: viaVerio will pay you up to
$1,000 for every account that you consolidate with us.
http://ad.doubleclick.net/clk;4749864;7604308;v?
http://www.viaverio.com/consolidator/osdn.cfm
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to