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

Attachment: msg02700/pgp00000.pgp
Description: PGP signature

Reply via email to