On Sun, Nov 25, 2001 at 12:43:22PM -0800, David Brownell wrote: > Actually my current thought is that the bulk queuing ought > to have those exact semantics ... and it's such "fault" handling > that's exactly where I mentioned (privately) that I see the > problems coming, similarly on the write side and in terms > of cancellation. I don't think our HCs do that "right", either > in the spec sense (see next) or the pragmatic "code does > reasonable things" sense (consider your scenario).
See, then I can compose a counter-scenario.
Consider the following: usb-storage wants to send 3 "transactions" to a
device. A bulk-out command, a bulk-in/out for data, and a bulk-in for
status. Can I queue all these up?
If the short-transfer on data causes all URBs to stop, then the status is
never transferred.
If the short-transfer on data does not cause the URBs to stop, then the
status information winds up in the user buffer.
If, however, the HCD understood that the data was a single 'transfer', the
short-packet would properly retire just the data phase and we could
progress to the status phase.
This is why I want the HCD to understand scatter-gather. It's the only way
that I can get the entire data phase treated as a single transfer, which is
how the model wants to look at it.
Matt
--
Matthew Dharm Home: [EMAIL PROTECTED]
Maintainer, Linux USB Mass Storage Driver
E: You run this ship with Windows?! YOU IDIOT!
L: Give me a break, it came bundled with the computer!
-- ESR and Lan Solaris
User Friendly, 12/8/1998
msg02700/pgp00000.pgp
Description: PGP signature
