Alan Cox wrote: >> "one size" that you can supply to the SG_IO command (unless you want to >> use a stupidly large buffer) to retrieve all the data at once. Instead, >> as Tejun describes, you put a short read request in first, look at byte >> 1 of the page which tells you the length, and then read the whole lot. > > ATAPI effectively requires you supply a stupidly large buffer. In theory > you set the transfer size in the lba registers and it all works. In > practice some drives ignore this and there isn't a nice reliable way to > clean up. The transfer size is specified in Allocation Length field inside CDB of commands which can transfer variable length data. I got confused about this too but both the host and device know how much data can be transferred. > Welcome to the wonderful world of IDE, where the spec sucks and the > drives manage to do even worse things. > > We can try and clean up better in these cases at least for PIO transfers > by trying to drain the data beyond this point, on the controllers that > cope with this but really - fix the app to reflect reality: ATAPI is SCSI > as spoken by yokels Not that I disagree to this point tho. :-) -- tejun - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html