From c0dcffd71d5064efefa620231152c38eca8e066b Mon Sep 17 00:00:00 2001 From: FUJITA Tomonori Date: Mon, 10 Sep 2007 04:17:13 +0100 Subject: qla1280: sg chaining fixes Signed-off-by: FUJITA Tomonori Signed-off-by: Jens Axboe --- drivers/scsi/qla1280.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'drivers/scsi/qla1280.c') diff --git a/drivers/scsi/qla1280.c b/drivers/scsi/qla1280.c index 1f17dec7d6f..5cc23f8f370 100644 --- a/drivers/scsi/qla1280.c +++ b/drivers/scsi/qla1280.c @@ -2977,8 +2977,8 @@ qla1280_64bit_start_scsi(struct scsi_qla_host *ha, struct srb * sp) cpu_to_le32(pci_dma_hi32(dma_handle)), cpu_to_le32(pci_dma_lo32(dma_handle)), cpu_to_le32(sg_dma_len(s))); - remseg--; } + remseg -= cnt; dprintk(5, "qla1280_64bit_start_scsi: " "continuation packet data - b %i, t " "%i, l %i \n", SCSI_BUS_32(cmd), @@ -3250,6 +3250,8 @@ qla1280_32bit_start_scsi(struct scsi_qla_host *ha, struct srb * sp) /* Load continuation entry data segments. */ for_each_sg(sg, s, remseg, cnt) { + if (cnt == 7) + break; *dword_ptr++ = cpu_to_le32(pci_dma_lo32(sg_dma_address(s))); *dword_ptr++ = @@ -3260,6 +3262,7 @@ qla1280_32bit_start_scsi(struct scsi_qla_host *ha, struct srb * sp) cpu_to_le32(pci_dma_lo32(sg_dma_address(s))), cpu_to_le32(sg_dma_len(s))); } + remseg -= cnt; dprintk(5, "qla1280_32bit_start_scsi: " "continuation packet data - " "scsi(%i:%i:%i)\n", SCSI_BUS_32(cmd), -- cgit v1.2.3