[SCSI] be2iscsi: Fixing Bug for multiple SGEs
authorJayamohan Kallickal <jayamohank@serverengines.com>
Wed, 6 Jan 2010 20:20:19 +0000 (01:50 +0530)
committerJames Bottomley <James.Bottomley@suse.de>
Tue, 9 Feb 2010 00:26:01 +0000 (18:26 -0600)
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>
drivers/scsi/be2iscsi/be_main.c

index 9fc4446..d611a13 100644 (file)
@@ -1711,7 +1711,8 @@ hwi_write_sgl(struct iscsi_wrb *pwrb, struct scatterlist *sg,
                                      io_task->bhs_pa.u.a32.address_hi);
 
        l_sg = sg;
-       for (index = 0; (index < num_sg) && (index < 2); index++, sg_next(sg)) {
+       for (index = 0; (index < num_sg) && (index < 2); index++,
+                                                        sg = sg_next(sg)) {
                if (index == 0) {
                        sg_len = sg_dma_len(sg);
                        addr = (u64) sg_dma_address(sg);
@@ -1755,7 +1756,7 @@ hwi_write_sgl(struct iscsi_wrb *pwrb, struct scatterlist *sg,
        psgl++;
        psgl++;
        offset = 0;
-       for (index = 0; index < num_sg; index++, sg_next(sg), psgl++) {
+       for (index = 0; index < num_sg; index++, sg = sg_next(sg), psgl++) {
                sg_len = sg_dma_len(sg);
                addr = (u64) sg_dma_address(sg);
                AMAP_SET_BITS(struct amap_iscsi_sge, addr_lo, psgl,