[SCSI] ips: fix data buffer accessors conversion bug

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>
This commit is contained in:
FUJITA Tomonori 2008-02-19 17:02:27 +09:00 committed by James Bottomley
parent ff83efacf2
commit 2b28a4721e

View 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); METHOD_TRACE("ips_make_passthru", 1);
scsi_for_each_sg(SC, sg, scsi_sg_count(SC), i) scsi_for_each_sg(SC, sg, scsi_sg_count(SC), i)
length += sg[i].length; length += sg->length;
if (length < sizeof (ips_passthru_t)) { if (length < sizeof (ips_passthru_t)) {
/* wrong size */ /* wrong size */