This patch fixes a problem with some out-of-spec SCSI disks that report hardware or medium errors incorrectly. Without the patch, the kernel may silently ignore a failed write command or return corrupted data on a failed read command. Signed-off-by: Tony Battersby <tonyb@xxxxxxxxxxxxxxx> --- This is a simplified version of the original patch that fixes just the problem at hand, without trying to handle other theoretical out-of-spec cases. Applies to kernels 2.6.18 - 2.6.24-git10+. --- linux-2.6.24-git10/drivers/scsi/sd.c.orig 2008-02-01 11:24:37.000000000 -0500 +++ linux-2.6.24-git10/drivers/scsi/sd.c 2008-02-01 11:26:12.000000000 -0500 @@ -990,6 +990,8 @@ static int sd_done(struct scsi_cmnd *SCp /* This computation should always be done in terms of * the resolution of the device's medium. */ + if (bad_lba < start_lba) + goto out; good_bytes = (bad_lba - start_lba)*SCpnt->device->sector_size; break; case RECOVERED_ERROR: - 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