In scsi_test_unit_ready() a local sense may fail to allocate. In this case the buffer must not be used even if an IO error happens. Signed-off-by: Oliver Neukum <oneukum@xxxxxxx> CC: stable@xxxxxxxxxx --- drivers/scsi/scsi_lib.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index ffd7773..bab19f2 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c @@ -2043,10 +2043,10 @@ scsi_test_unit_ready(struct scsi_device *sdev, int timeout, int retries, do { result = scsi_execute_req(sdev, cmd, DMA_NONE, NULL, 0, sshdr, timeout, retries, NULL); - if (sdev->removable && scsi_sense_valid(sshdr) && + if (sdev->removable && sshdr && scsi_sense_valid(sshdr) && sshdr->sense_key == UNIT_ATTENTION) sdev->changed = 1; - } while (scsi_sense_valid(sshdr) && + } while (sshdr && scsi_sense_valid(sshdr) && sshdr->sense_key == UNIT_ATTENTION && --retries); if (!sshdr_external) -- 1.7.7 -- 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