IB/core: Enhance ib_map_mr_sg()
[deliverable/linux.git] / drivers / infiniband / hw / mlx5 / mr.c
index b678eac0f8b3f400280216b9f2e81d008bc2b2a1..8cf2ce50511f935e6043bea4ebaa4af3a980661c 100644 (file)
@@ -1752,10 +1752,11 @@ static int
 mlx5_ib_sg_to_klms(struct mlx5_ib_mr *mr,
                   struct scatterlist *sgl,
                   unsigned short sg_nents,
-                  unsigned int sg_offset)
+                  unsigned int *sg_offset_p)
 {
        struct scatterlist *sg = sgl;
        struct mlx5_klm *klms = mr->descs;
+       unsigned int sg_offset = sg_offset_p ? *sg_offset_p : 0;
        u32 lkey = mr->ibmr.pd->local_dma_lkey;
        int i;
 
@@ -1774,6 +1775,9 @@ mlx5_ib_sg_to_klms(struct mlx5_ib_mr *mr,
                sg_offset = 0;
        }
 
+       if (sg_offset_p)
+               *sg_offset_p = sg_offset;
+
        return i;
 }
 
@@ -1792,7 +1796,7 @@ static int mlx5_set_page(struct ib_mr *ibmr, u64 addr)
 }
 
 int mlx5_ib_map_mr_sg(struct ib_mr *ibmr, struct scatterlist *sg, int sg_nents,
-               unsigned int sg_offset)
+                     unsigned int *sg_offset)
 {
        struct mlx5_ib_mr *mr = to_mmr(ibmr);
        int n;
This page took 0.025789 seconds and 5 git commands to generate.