On Wed, 8 Jun 2005, David Brownell wrote:

> That's a pretty strange and unsupportable breakdown.  Each sglist entry
> must fit into an integral number of packets.  864 is a multiple of 32,
> but not of the usual bulk maxpacket sizes:  64 (full speed) or 512 (high
> speed).  Some software layer should have rejected that; and last I heard,
> the policy was that it be rejected near the SCSI layer.  (Which is why
> USB doesn't check.)

usb-storage sets the SCSI device's request queue to have a DMA alignment
mask of 512, so buffers coming through the block layer are supposed to
start and end at addresses that are multiples of 512.  Interestingly, that
requirement doesn't seem to be enforced anywhere other than a couple of
places where the kernel maps user buffers for direct I/O.  Buffers set up
by kernel drivers aren't checked.  I guess the assumption is that they
will naturally fall on page boundaries.

Alan Stern



-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games.  How far can you shotput
a projector? How fast can you ride your desk chair down the office luge track?
If you want to score the big prize, get to know the little guy.  
Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=20
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to