diff options
author | Jayamohan Kallickal <jayamohank@serverengines.com> | 2010-01-06 15:20:19 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-02-08 19:26:01 -0500 |
commit | 48bd86cf213a5780346b603b703c4b83978611a8 (patch) | |
tree | d776c915c93188624eeb008bb003cfded766bd27 | |
parent | e4b8972c6172950ce226afdf7a921098f7672d5c (diff) |
[SCSI] be2iscsi: Fixing Bug for multiple SGEs
The patch fixes a but where the sg_next is not assigned and hence
the first sge was being resused wrongly
Signed-off-by: Jayamohan Kallickal <jayamohank@serverengines.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
-rw-r--r-- | drivers/scsi/be2iscsi/be_main.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/scsi/be2iscsi/be_main.c b/drivers/scsi/be2iscsi/be_main.c index 9fc4446b21e0..d611a13dabf0 100644 --- a/drivers/scsi/be2iscsi/be_main.c +++ b/drivers/scsi/be2iscsi/be_main.c | |||
@@ -1711,7 +1711,8 @@ hwi_write_sgl(struct iscsi_wrb *pwrb, struct scatterlist *sg, | |||
1711 | io_task->bhs_pa.u.a32.address_hi); | 1711 | io_task->bhs_pa.u.a32.address_hi); |
1712 | 1712 | ||
1713 | l_sg = sg; | 1713 | l_sg = sg; |
1714 | for (index = 0; (index < num_sg) && (index < 2); index++, sg_next(sg)) { | 1714 | for (index = 0; (index < num_sg) && (index < 2); index++, |
1715 | sg = sg_next(sg)) { | ||
1715 | if (index == 0) { | 1716 | if (index == 0) { |
1716 | sg_len = sg_dma_len(sg); | 1717 | sg_len = sg_dma_len(sg); |
1717 | addr = (u64) sg_dma_address(sg); | 1718 | addr = (u64) sg_dma_address(sg); |
@@ -1755,7 +1756,7 @@ hwi_write_sgl(struct iscsi_wrb *pwrb, struct scatterlist *sg, | |||
1755 | psgl++; | 1756 | psgl++; |
1756 | psgl++; | 1757 | psgl++; |
1757 | offset = 0; | 1758 | offset = 0; |
1758 | for (index = 0; index < num_sg; index++, sg_next(sg), psgl++) { | 1759 | for (index = 0; index < num_sg; index++, sg = sg_next(sg), psgl++) { |
1759 | sg_len = sg_dma_len(sg); | 1760 | sg_len = sg_dma_len(sg); |
1760 | addr = (u64) sg_dma_address(sg); | 1761 | addr = (u64) sg_dma_address(sg); |
1761 | AMAP_SET_BITS(struct amap_iscsi_sge, addr_lo, psgl, | 1762 | AMAP_SET_BITS(struct amap_iscsi_sge, addr_lo, psgl, |