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-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html