[SCSI] ips: fix data buffer accessors conversion bug
authorFUJITA Tomonori <tomof@acm.org>
Tue, 19 Feb 2008 08:02:27 +0000 (17:02 +0900)
committerJames Bottomley <James.Bottomley@HansenPartnership.com>
Tue, 19 Feb 2008 16:49:27 +0000 (10:49 -0600)
This fixes a bug that can't handle a passthru command with more than
two sg entries.

Big thanks to Tim Pepper for debugging the problem.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Acked-by: Mark Salyzyn <Mark_Salyzyn@adaptec.com>
Cc: Stable Tree <stable@kernel.org>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
drivers/scsi/ips.c

index bb152fb9fec7dc4b3260c2b4add978ba4af0e314..7ed568f180ae6aee24e11364dd7f35ed63b1b533 100644 (file)
@@ -1576,7 +1576,7 @@ ips_make_passthru(ips_ha_t *ha, struct scsi_cmnd *SC, ips_scb_t *scb, int intr)
        METHOD_TRACE("ips_make_passthru", 1);
 
         scsi_for_each_sg(SC, sg, scsi_sg_count(SC), i)
-                length += sg[i].length;
+               length += sg->length;
 
        if (length < sizeof (ips_passthru_t)) {
                /* wrong size */