[SCSI] scsi_transport_spi: fix sense buffer size error
authorJames Bottomley <James.Bottomley@steeleye.com>
Mon, 11 Dec 2006 15:47:06 +0000 (09:47 -0600)
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>
Wed, 3 Jan 2007 22:57:35 +0000 (16:57 -0600)
The code does this:

unsigned char sense[SCSI_SENSE_BUFFERSIZE];
...
scsi_normalize_sense(sense, sizeof(*sense), sshdr)

however the sizeof will return 1 not 96 which means the sense data will
have no valid ASC/ASCQ values.  Fix by putting the correct sense size.
The only affected case for this would have been the DV buffer sanity
check failure, which is fortunately quite rare.

Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
drivers/scsi/scsi_transport_spi.c

index 3fded4831460573b4c5996fdc0f1bc3c8cf513ca..014d7fea1ff375d5a5c982c8d5c2f2d67d3be28b 100644 (file)
@@ -122,7 +122,7 @@ static int spi_execute(struct scsi_device *sdev, const void *cmd,
                        if (!sshdr)
                                sshdr = &sshdr_tmp;
 
-                       if (scsi_normalize_sense(sense, sizeof(*sense),
+                       if (scsi_normalize_sense(sense, SCSI_SENSE_BUFFERSIZE,
                                                 sshdr)
                            && sshdr->sense_key == UNIT_ATTENTION)
                                continue;