[PATCH] iso pipe support for usbatm
rkagan at mail.ru
Fri Mar 25 05:15:03 EST 2005
On Fri, Mar 25, 2005 at 10:10:28AM +0100, castet.matthieu at free.fr wrote:
> > 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.
What's the point to delay it then? I would think that the test for the
urb status could be used to discard the data in this urb (by setting
->filled_cells to zero). Delaying it until the next urb arrives doesn't
seem to make any sense.
> > [...] 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.
No worries here: we only kill urbs with tasklets disabled, then trim the
sender and receiver lists, so when the tasklets are reenabled they can
never submit a urb.
More information about the Usbatm