projects
/
deliverable
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
IB/core: Enhance ib_map_mr_sg()
[deliverable/linux.git]
/
drivers
/
infiniband
/
hw
/
mlx5
/
mr.c
diff --git
a/drivers/infiniband/hw/mlx5/mr.c
b/drivers/infiniband/hw/mlx5/mr.c
index b678eac0f8b3f400280216b9f2e81d008bc2b2a1..8cf2ce50511f935e6043bea4ebaa4af3a980661c 100644
(file)
--- a/
drivers/infiniband/hw/mlx5/mr.c
+++ b/
drivers/infiniband/hw/mlx5/mr.c
@@
-1752,10
+1752,11
@@
static int
mlx5_ib_sg_to_klms(struct mlx5_ib_mr *mr,
struct scatterlist *sgl,
unsigned short sg_nents,
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;
{
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;
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;
}
sg_offset = 0;
}
+ if (sg_offset_p)
+ *sg_offset_p = sg_offset;
+
return i;
}
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,
}
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;
{
struct mlx5_ib_mr *mr = to_mmr(ibmr);
int n;
This page took
0.025456 seconds
and
5
git commands to generate.