[PATCH] iso pipe support for usbatm
castet.matthieu at free.fr
castet.matthieu at free.fr
Fri Mar 25 04:10:28 EST 2005
Selon Roman Kagan <rkagan at mail.ru>:
> On Thu, Mar 24, 2005 at 11:57:36PM +0100, matthieu castet wrote:
> > in fact in case of -EILSEQ, there could be some frames that are valid,
> > but some are invalid : we check the status for each frame in the loop
> > before.
>
> Do you actually see nonzero number of valid frames in urbs returning
> -EILSEQ? Then it doesn't sound like a good idea to discard such urbs as
> a whole, which is done in this test.
>
yes urb->status say that there is at least an error, so you could have 15 valid
frames and a frame with an error.
Where do you see that such urb are discarded ?
The lenght information is for each frame, and the urb->status is used just for
tasklet_schedule. And missing tasklet_schedule don't discard them, it just
delay the processing and resubmit.
> > This test is to avoid in case of consecutive errors to never call
> > tasklet_schedule, and never submit again urb...
>
> In other words, if all urbs we had submitted returned with an error
> let's deadlock. Not too good. I guess with the small number of urbs
> we're using there may be valid reasons for them to occasionally fail all
> in sequence. I believe always scheduling the tasklet is safe.
I think so, but we should catch some error like ESHUTDOWN, ECONNRESET,... in
order to avoid loop when killing the urb.
Matthieu
More information about the Usbatm
mailing list