Re: [PATCH, RFC] usbmon: correct computing of the ISO packets withmmap

From: Alan Stern
Date: Mon Nov 15 2010 - 10:02:01 EST


On Sun, 14 Nov 2010, Pete Zaitcev wrote:

> > > + while (ndesc-- != 0) {
> > > + if (fp->status == 0 && fp->actual_length != 0) {
> >
> > I'd leave out the fp->status == 0 test. It's not relevant; a buffer
> > can contain valid data even if the final status isn't 0.
>
> That's a good point, however is actual_length filled in such case?
> I thought it was either one or the other.

No, it's possible to have both. This is less likely with isochronous
than with the other transfer types, but it can happen. For example,
consider a high-bandwidth high-speed transfer where 3072 bytes are
received in three packets during a single microframe. You might
receive two of the three packets, giving actual_length = 2048, and then
not receive the third, giving status = -EPROTO.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/