On Mon, 9 Apr 2012, Norman Diamond wrote: > I suggest that quirk processing should only try to read 1 block, the last block which is asserted to exist, and decrement if the read fails due to non-existence. If the read fails for a different reason then the block exists and the count should not be decremented. I have tried to explain before that this is a very bad idea. Bridges that crash when attempting to read beyond the end of the device would become totally unusable. > > By the way, Linux's SCSI disk driver no longer does this.� It is more cautious; accesses near the end of a USB device are broken up into single-block reads or writes.� However at the time the quirk entry was added, the driver wasn't so careful. > > Which means that someone's bridge might have crashed due to a bad > block at or near the end of the drive. More likely the bridge crashed because it was unable to handle a multiple-block read whereas it could have handled a single-block read. Regardless, we are now stuck. We don't dare remove the existing quirk entries because of the potential for breaking systems that currently work. If you can suggest a way of detecting whether or not the capacity value is correct that will not break any existing systems, I would be extremely glad to hear it. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html