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