]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
sdp: must use ib_sg_dma_*, not sg_dma_* for mapping
authorAmir Vadai <amirv@mellanox.co.il>
Sun, 24 Jan 2010 15:12:34 +0000 (17:12 +0200)
committerMukesh Kacker <mukesh.kacker@oracle.com>
Tue, 6 Oct 2015 12:04:47 +0000 (05:04 -0700)
This fixes OFED bug 1895, althoug some warnings are still generated,
when running qperf sdp_bw with large sizes (using zcopy), on the
truescale adapters.

Signed-off-by: Dave Olson <dave.olson@qlogic.com>
Signed-off-by: Amir Vadai <amirv@mellanox.co.il>
drivers/infiniband/ulp/sdp/sdp_zcopy.c

index 39266976079111d5dd4d3a2ac73f6a5582ab8cf9..bb57d08b656c76bc4fbebefca565d388278ba6b3 100644 (file)
@@ -402,6 +402,7 @@ static int sdp_alloc_fmr(struct sock *sk, void *uaddr, size_t len,
 {
        struct ib_pool_fmr *fmr;
        struct ib_umem *umem;
+       struct ib_device *dev;
        u64 *pages;
        struct ib_umem_chunk *chunk;
        int n, j, k;
@@ -433,12 +434,17 @@ static int sdp_alloc_fmr(struct sock *sk, void *uaddr, size_t len,
 
        n = 0;
 
+       dev = sdp_sk(sk)->ib_device;
        list_for_each_entry(chunk, &umem->chunk_list, list) {
                for (j = 0; j < chunk->nmap; ++j) {
-                       len = sg_dma_len(&chunk->page_list[j]) >> PAGE_SHIFT;
+                       len = ib_sg_dma_len(dev,
+                                       &chunk->page_list[j]) >> PAGE_SHIFT;
+
                        for (k = 0; k < len; ++k) {
-                               pages[n++] = sg_dma_address(&chunk->page_list[j]) +
+                               pages[n++] = ib_sg_dma_address(dev,
+                                               &chunk->page_list[j]) +
                                        umem->page_size * k;
+
                        }
                }
        }