IB/core: Add interface to advise_mr for kernel users
Allow ULPs to call advise_mr, so they can control ODP regions in the same way as user space applications. Signed-off-by: Moni Shoua <monis@mellanox.com> Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
This commit is contained in:
parent
33006bd4f3
commit
87d8069f6b
|
@ -2020,6 +2020,17 @@ struct ib_mr *ib_reg_user_mr(struct ib_pd *pd, u64 start, u64 length,
|
|||
}
|
||||
EXPORT_SYMBOL(ib_reg_user_mr);
|
||||
|
||||
int ib_advise_mr(struct ib_pd *pd, enum ib_uverbs_advise_mr_advice advice,
|
||||
u32 flags, struct ib_sge *sg_list, u32 num_sge)
|
||||
{
|
||||
if (!pd->device->ops.advise_mr)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
return pd->device->ops.advise_mr(pd, advice, flags, sg_list, num_sge,
|
||||
NULL);
|
||||
}
|
||||
EXPORT_SYMBOL(ib_advise_mr);
|
||||
|
||||
int ib_dereg_mr_user(struct ib_mr *mr, struct ib_udata *udata)
|
||||
{
|
||||
struct ib_pd *pd = mr->pd;
|
||||
|
|
|
@ -4159,6 +4159,9 @@ static inline void ib_dma_free_coherent(struct ib_device *dev,
|
|||
struct ib_mr *ib_reg_user_mr(struct ib_pd *pd, u64 start, u64 length,
|
||||
u64 virt_addr, int mr_access_flags);
|
||||
|
||||
/* ib_advise_mr - give an advice about an address range in a memory region */
|
||||
int ib_advise_mr(struct ib_pd *pd, enum ib_uverbs_advise_mr_advice advice,
|
||||
u32 flags, struct ib_sge *sg_list, u32 num_sge);
|
||||
/**
|
||||
* ib_dereg_mr_user - Deregisters a memory region and removes it from the
|
||||
* HCA translation table.
|
||||
|
|
Loading…
Reference in New Issue