On Wed, Nov 7, 2012 at 11:00 AM, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote: > On Tue, 6 Nov 2012, Jason J. Herne wrote: > >> I was comparing the two USB captures and I noticed the Windows capture >> uses a READ(16) and Linux is using a READ(10). I'm not sure how the >> kernel determines which read command to use, but I'm wondering if this >> could be the problem here? > > It could well be the problem. The kernel uses READ(10) if the starting > LBA is small enough (<= 0xffffffff); otherwise it uses READ(16). In > this case the starting LBA was 0. > >> I was way wrong about the first read being in the 700's btw :) >> Window's first READ(16) is at frame 291. >> Linux first READ(1) is at 161. >> >> Hope this is useful. I'll keep digging. > > Most likely that's the answer. Of course, for a device to recognize > READ(16) but not READ(10) is a violation of the SCSI spec. > > I don't know what criterion Windows uses. Maybe it uses READ(16) > whenever the total capacity is >= 2^32 blocks. I've not had enough time to properly find where/how to fix/hack this into the code. I'll keep looking at it. Does there happen to be any "quirks" that might help? Also, i assume the place to look is drivers/usb/storage? Is anything in drivers/scsi related? Forgive my ignorance, my kernel development experience is primarily in the realm of kvm. Any tips you could provide would be most appreciated. -- - Jason J. Herne (hernejj@xxxxxxxxx) -- 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