Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a316b79c3306c59176d7ae04e4aad12374dfed37
Commit:     a316b79c3306c59176d7ae04e4aad12374dfed37
Parent:     3fe2ed344d4b36e7489b1d0c7cf677312b0bf870
Author:     Erez Zilber <[EMAIL PROTECTED]>
AuthorDate: Wed Nov 21 13:11:37 2007 +0200
Committer:  Roland Dreier <[EMAIL PROTECTED]>
CommitDate: Sat Nov 24 13:50:39 2007 -0800

    IB/iser: Add missing counter increment in iser_data_buf_aligned_len()
    
    While adding sg chaining support to iSER, a "for" loop was replaced
    with a "for_each_sg" loop. The "for" loop included the incrementation
    of 2 variables. Only one of them is incremented in the current
    "for_each_sg" loop. This caused iSER to think that all data is
    unaligned, and all data was copied to aligned buffers.
    
    This patch increments the missing counter inside the "for_each_sg"
    loop whenever necessary.
    
    Signed-off-by: Erez Zilber <[EMAIL PROTECTED]>
    Signed-off-by: Roland Dreier <[EMAIL PROTECTED]>
---
 drivers/infiniband/ulp/iser/iser_memory.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/infiniband/ulp/iser/iser_memory.c 
b/drivers/infiniband/ulp/iser/iser_memory.c
index d687980..4a17743 100644
--- a/drivers/infiniband/ulp/iser/iser_memory.c
+++ b/drivers/infiniband/ulp/iser/iser_memory.c
@@ -310,13 +310,15 @@ static unsigned int iser_data_buf_aligned_len(struct 
iser_data_buf *data,
                if (i + 1 < data->dma_nents) {
                        next_addr = ib_sg_dma_address(ibdev, sg_next(sg));
                        /* are i, i+1 fragments of the same page? */
-                       if (end_addr == next_addr)
+                       if (end_addr == next_addr) {
+                               cnt++;
                                continue;
-                       else if (!IS_4K_ALIGNED(end_addr)) {
+                       } else if (!IS_4K_ALIGNED(end_addr)) {
                                ret_len = cnt + 1;
                                break;
                        }
                }
+               cnt++;
        }
        if (i == data->dma_nents)
                ret_len = cnt;  /* loop ended */
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to