mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 17:47:41 +02:00
RDMA/umem: Rename ib_umem_get() to ib_umem_get_va()
The new umem getter family being introduced in follow-up patches need a fitting name for the central all-source helper that resolves attributes, legacy fillers and a UHW VA fallback. Rename the existing VA-pinning helper ib_umem_get() to ib_umem_get_va() so the name is freed up. The new name is consistent with names of rest of the helpers that are about to be introduced. Link: https://patch.msgid.link/r/20260529134312.2836341-2-jiri@resnulli.us Signed-off-by: Jiri Pirko <jiri@nvidia.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
This commit is contained in:
parent
ded0abacdc
commit
af84105686
|
|
@ -154,15 +154,15 @@ unsigned long ib_umem_find_best_pgsz(struct ib_umem *umem,
|
|||
EXPORT_SYMBOL(ib_umem_find_best_pgsz);
|
||||
|
||||
/**
|
||||
* ib_umem_get - Pin and DMA map userspace memory.
|
||||
* ib_umem_get_va - Pin and DMA map userspace memory.
|
||||
*
|
||||
* @device: IB device to connect UMEM
|
||||
* @addr: userspace virtual address to start at
|
||||
* @size: length of region to pin
|
||||
* @access: IB_ACCESS_xxx flags for memory being pinned
|
||||
*/
|
||||
struct ib_umem *ib_umem_get(struct ib_device *device, unsigned long addr,
|
||||
size_t size, int access)
|
||||
struct ib_umem *ib_umem_get_va(struct ib_device *device, unsigned long addr,
|
||||
size_t size, int access)
|
||||
{
|
||||
struct ib_umem *umem;
|
||||
struct page **page_list;
|
||||
|
|
@ -275,10 +275,10 @@ struct ib_umem *ib_umem_get(struct ib_device *device, unsigned long addr,
|
|||
}
|
||||
return ret ? ERR_PTR(ret) : umem;
|
||||
}
|
||||
EXPORT_SYMBOL(ib_umem_get);
|
||||
EXPORT_SYMBOL(ib_umem_get_va);
|
||||
|
||||
/**
|
||||
* ib_umem_release - release memory pinned with ib_umem_get
|
||||
* ib_umem_release - release pinned memory
|
||||
* @umem: umem struct to release
|
||||
*/
|
||||
void ib_umem_release(struct ib_umem *umem)
|
||||
|
|
|
|||
|
|
@ -139,7 +139,7 @@ static int UVERBS_HANDLER(UVERBS_METHOD_CQ_CREATE)(
|
|||
goto err_event_file;
|
||||
}
|
||||
|
||||
umem = ib_umem_get(ib_dev, buffer_va, buffer_length, IB_ACCESS_LOCAL_WRITE);
|
||||
umem = ib_umem_get_va(ib_dev, buffer_va, buffer_length, IB_ACCESS_LOCAL_WRITE);
|
||||
if (IS_ERR(umem)) {
|
||||
ret = PTR_ERR(umem);
|
||||
goto err_event_file;
|
||||
|
|
|
|||
|
|
@ -1210,8 +1210,8 @@ static int bnxt_re_init_user_qp(struct bnxt_re_dev *rdev, struct bnxt_re_pd *pd,
|
|||
bytes += bnxt_re_get_psn_bytes(rdev, cntx, qplib_qp, ureq, fixed_que_attr);
|
||||
|
||||
bytes = PAGE_ALIGN(bytes);
|
||||
umem = ib_umem_get(&rdev->ibdev, ureq->qpsva, bytes,
|
||||
IB_ACCESS_LOCAL_WRITE);
|
||||
umem = ib_umem_get_va(&rdev->ibdev, ureq->qpsva, bytes,
|
||||
IB_ACCESS_LOCAL_WRITE);
|
||||
if (IS_ERR(umem))
|
||||
return PTR_ERR(umem);
|
||||
|
||||
|
|
@ -1225,8 +1225,8 @@ static int bnxt_re_init_user_qp(struct bnxt_re_dev *rdev, struct bnxt_re_pd *pd,
|
|||
|
||||
bytes = (qplib_qp->rq.max_wqe * qplib_qp->rq.wqe_size);
|
||||
bytes = PAGE_ALIGN(bytes);
|
||||
umem = ib_umem_get(&rdev->ibdev, ureq->qprva, bytes,
|
||||
IB_ACCESS_LOCAL_WRITE);
|
||||
umem = ib_umem_get_va(&rdev->ibdev, ureq->qprva, bytes,
|
||||
IB_ACCESS_LOCAL_WRITE);
|
||||
if (IS_ERR(umem)) {
|
||||
rc = PTR_ERR(umem);
|
||||
goto fail;
|
||||
|
|
@ -2171,8 +2171,8 @@ static int bnxt_re_init_user_srq(struct bnxt_re_dev *rdev,
|
|||
|
||||
bytes = (qplib_srq->max_wqe * qplib_srq->wqe_size);
|
||||
bytes = PAGE_ALIGN(bytes);
|
||||
umem = ib_umem_get(&rdev->ibdev, ureq.srqva, bytes,
|
||||
IB_ACCESS_LOCAL_WRITE);
|
||||
umem = ib_umem_get_va(&rdev->ibdev, ureq.srqva, bytes,
|
||||
IB_ACCESS_LOCAL_WRITE);
|
||||
if (IS_ERR(umem))
|
||||
return PTR_ERR(umem);
|
||||
|
||||
|
|
@ -3496,9 +3496,9 @@ int bnxt_re_create_user_cq(struct ib_cq *ibcq, const struct ib_cq_init_attr *att
|
|||
dev_attr->max_cq_wqes + 1, uctx);
|
||||
|
||||
if (!ibcq->umem) {
|
||||
ibcq->umem = ib_umem_get(&rdev->ibdev, req.cq_va,
|
||||
entries * sizeof(struct cq_base),
|
||||
IB_ACCESS_LOCAL_WRITE);
|
||||
ibcq->umem = ib_umem_get_va(&rdev->ibdev, req.cq_va,
|
||||
entries * sizeof(struct cq_base),
|
||||
IB_ACCESS_LOCAL_WRITE);
|
||||
if (IS_ERR(ibcq->umem))
|
||||
return PTR_ERR(ibcq->umem);
|
||||
}
|
||||
|
|
@ -3655,12 +3655,12 @@ int bnxt_re_resize_cq(struct ib_cq *ibcq, unsigned int cqe,
|
|||
if (rc)
|
||||
goto fail;
|
||||
|
||||
cq->resize_umem = ib_umem_get(&rdev->ibdev, req.cq_va,
|
||||
entries * sizeof(struct cq_base),
|
||||
IB_ACCESS_LOCAL_WRITE);
|
||||
cq->resize_umem = ib_umem_get_va(&rdev->ibdev, req.cq_va,
|
||||
entries * sizeof(struct cq_base),
|
||||
IB_ACCESS_LOCAL_WRITE);
|
||||
if (IS_ERR(cq->resize_umem)) {
|
||||
rc = PTR_ERR(cq->resize_umem);
|
||||
ibdev_err(&rdev->ibdev, "%s: ib_umem_get failed! rc = %pe\n",
|
||||
ibdev_err(&rdev->ibdev, "%s: ib_umem_get_va failed! rc = %pe\n",
|
||||
__func__, cq->resize_umem);
|
||||
cq->resize_umem = NULL;
|
||||
goto fail;
|
||||
|
|
@ -4670,7 +4670,7 @@ struct ib_mr *bnxt_re_reg_user_mr(struct ib_pd *ib_pd, u64 start, u64 length,
|
|||
if (dmah)
|
||||
return ERR_PTR(-EOPNOTSUPP);
|
||||
|
||||
umem = ib_umem_get(&rdev->ibdev, start, length, mr_access_flags);
|
||||
umem = ib_umem_get_va(&rdev->ibdev, start, length, mr_access_flags);
|
||||
if (IS_ERR(umem))
|
||||
return ERR_CAST(umem);
|
||||
|
||||
|
|
|
|||
|
|
@ -530,7 +530,7 @@ struct ib_mr *c4iw_reg_user_mr(struct ib_pd *pd, u64 start, u64 length,
|
|||
|
||||
mhp->rhp = rhp;
|
||||
|
||||
mhp->umem = ib_umem_get(pd->device, start, length, acc);
|
||||
mhp->umem = ib_umem_get_va(pd->device, start, length, acc);
|
||||
if (IS_ERR(mhp->umem))
|
||||
goto err_free_skb;
|
||||
|
||||
|
|
|
|||
|
|
@ -1745,7 +1745,7 @@ struct ib_mr *efa_reg_mr(struct ib_pd *ibpd, u64 start, u64 length,
|
|||
goto err_out;
|
||||
}
|
||||
|
||||
mr->umem = ib_umem_get(ibpd->device, start, length, access_flags);
|
||||
mr->umem = ib_umem_get_va(ibpd->device, start, length, access_flags);
|
||||
if (IS_ERR(mr->umem)) {
|
||||
err = PTR_ERR(mr->umem);
|
||||
ibdev_dbg(&dev->ibdev,
|
||||
|
|
|
|||
|
|
@ -829,7 +829,7 @@ static int get_mtt_entries(struct erdma_dev *dev, struct erdma_mem *mem,
|
|||
{
|
||||
int ret = 0;
|
||||
|
||||
mem->umem = ib_umem_get(&dev->ibdev, start, len, access);
|
||||
mem->umem = ib_umem_get_va(&dev->ibdev, start, len, access);
|
||||
if (IS_ERR(mem->umem)) {
|
||||
ret = PTR_ERR(mem->umem);
|
||||
mem->umem = NULL;
|
||||
|
|
@ -896,8 +896,8 @@ static int erdma_map_user_dbrecords(struct erdma_ucontext *ctx,
|
|||
page->va = (dbrecords_va & PAGE_MASK);
|
||||
page->refcnt = 0;
|
||||
|
||||
page->umem = ib_umem_get(ctx->ibucontext.device,
|
||||
dbrecords_va & PAGE_MASK, PAGE_SIZE, 0);
|
||||
page->umem = ib_umem_get_va(ctx->ibucontext.device,
|
||||
dbrecords_va & PAGE_MASK, PAGE_SIZE, 0);
|
||||
if (IS_ERR(page->umem)) {
|
||||
rv = PTR_ERR(page->umem);
|
||||
kfree(page);
|
||||
|
|
|
|||
|
|
@ -29,8 +29,8 @@ int hns_roce_db_map_user(struct hns_roce_ucontext *context, unsigned long virt,
|
|||
|
||||
refcount_set(&page->refcount, 1);
|
||||
page->user_virt = page_addr;
|
||||
page->umem = ib_umem_get(context->ibucontext.device, page_addr,
|
||||
PAGE_SIZE, 0);
|
||||
page->umem = ib_umem_get_va(context->ibucontext.device, page_addr,
|
||||
PAGE_SIZE, 0);
|
||||
if (IS_ERR(page->umem)) {
|
||||
ret = PTR_ERR(page->umem);
|
||||
kfree(page);
|
||||
|
|
|
|||
|
|
@ -591,8 +591,8 @@ static int mtr_alloc_bufs(struct hns_roce_dev *hr_dev, struct hns_roce_mtr *mtr,
|
|||
|
||||
if (udata) {
|
||||
mtr->kmem = NULL;
|
||||
mtr->umem = ib_umem_get(ibdev, user_addr, total_size,
|
||||
buf_attr->user_access);
|
||||
mtr->umem = ib_umem_get_va(ibdev, user_addr, total_size,
|
||||
buf_attr->user_access);
|
||||
if (IS_ERR(mtr->umem)) {
|
||||
ibdev_err(ibdev, "failed to get umem, ret = %pe.\n",
|
||||
mtr->umem);
|
||||
|
|
|
|||
|
|
@ -110,8 +110,8 @@ int ionic_create_cq_common(struct ionic_vcq *vcq,
|
|||
if (rc)
|
||||
goto err_qdesc;
|
||||
|
||||
cq->umem = ib_umem_get(&dev->ibdev, req_cq->addr, req_cq->size,
|
||||
IB_ACCESS_LOCAL_WRITE);
|
||||
cq->umem = ib_umem_get_va(&dev->ibdev, req_cq->addr,
|
||||
req_cq->size, IB_ACCESS_LOCAL_WRITE);
|
||||
if (IS_ERR(cq->umem)) {
|
||||
rc = PTR_ERR(cq->umem);
|
||||
goto err_qdesc;
|
||||
|
|
@ -895,7 +895,7 @@ struct ib_mr *ionic_reg_user_mr(struct ib_pd *ibpd, u64 start, u64 length,
|
|||
|
||||
mr->flags = IONIC_MRF_USER_MR | to_ionic_mr_flags(access);
|
||||
|
||||
mr->umem = ib_umem_get(&dev->ibdev, start, length, access);
|
||||
mr->umem = ib_umem_get_va(&dev->ibdev, start, length, access);
|
||||
if (IS_ERR(mr->umem)) {
|
||||
rc = PTR_ERR(mr->umem);
|
||||
goto err_umem;
|
||||
|
|
@ -1837,7 +1837,7 @@ static int ionic_qp_sq_init(struct ionic_ibdev *dev, struct ionic_ctx *ctx,
|
|||
qp->sq_meta = NULL;
|
||||
qp->sq_msn_idx = NULL;
|
||||
|
||||
qp->sq_umem = ib_umem_get(&dev->ibdev, sq->addr, sq->size, 0);
|
||||
qp->sq_umem = ib_umem_get_va(&dev->ibdev, sq->addr, sq->size, 0);
|
||||
if (IS_ERR(qp->sq_umem))
|
||||
return PTR_ERR(qp->sq_umem);
|
||||
} else {
|
||||
|
|
@ -2050,7 +2050,7 @@ static int ionic_qp_rq_init(struct ionic_ibdev *dev, struct ionic_ctx *ctx,
|
|||
|
||||
qp->rq_meta = NULL;
|
||||
|
||||
qp->rq_umem = ib_umem_get(&dev->ibdev, rq->addr, rq->size, 0);
|
||||
qp->rq_umem = ib_umem_get_va(&dev->ibdev, rq->addr, rq->size, 0);
|
||||
if (IS_ERR(qp->rq_umem))
|
||||
return PTR_ERR(qp->rq_umem);
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -3527,7 +3527,7 @@ static struct ib_mr *irdma_reg_user_mr(struct ib_pd *pd, u64 start, u64 len,
|
|||
if (udata->inlen < IRDMA_MEM_REG_MIN_REQ_LEN)
|
||||
return ERR_PTR(-EINVAL);
|
||||
|
||||
region = ib_umem_get(pd->device, start, len, access);
|
||||
region = ib_umem_get_va(pd->device, start, len, access);
|
||||
|
||||
if (IS_ERR(region)) {
|
||||
ibdev_dbg(&iwdev->ibdev,
|
||||
|
|
@ -3729,7 +3729,7 @@ static int irdma_rereg_mr_trans(struct irdma_mr *iwmr, u64 start, u64 len,
|
|||
struct ib_umem *region;
|
||||
int err;
|
||||
|
||||
region = ib_umem_get(pd->device, start, len, iwmr->access);
|
||||
region = ib_umem_get_va(pd->device, start, len, iwmr->access);
|
||||
if (IS_ERR(region))
|
||||
return PTR_ERR(region);
|
||||
|
||||
|
|
|
|||
|
|
@ -238,7 +238,7 @@ int mana_ib_create_queue(struct mana_ib_dev *mdev, u64 addr, u32 size,
|
|||
queue->id = INVALID_QUEUE_ID;
|
||||
queue->gdma_region = GDMA_INVALID_DMA_REGION;
|
||||
|
||||
umem = ib_umem_get(&mdev->ib_dev, addr, size, IB_ACCESS_LOCAL_WRITE);
|
||||
umem = ib_umem_get_va(&mdev->ib_dev, addr, size, IB_ACCESS_LOCAL_WRITE);
|
||||
if (IS_ERR(umem)) {
|
||||
ibdev_dbg(&mdev->ib_dev, "Failed to get umem, %pe\n", umem);
|
||||
return PTR_ERR(umem);
|
||||
|
|
|
|||
|
|
@ -127,7 +127,7 @@ struct ib_mr *mana_ib_reg_user_mr(struct ib_pd *ibpd, u64 start, u64 length,
|
|||
if (!mr)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
mr->umem = ib_umem_get(ibdev, start, length, access_flags);
|
||||
mr->umem = ib_umem_get_va(ibdev, start, length, access_flags);
|
||||
if (IS_ERR(mr->umem)) {
|
||||
err = PTR_ERR(mr->umem);
|
||||
ibdev_dbg(ibdev,
|
||||
|
|
|
|||
|
|
@ -180,9 +180,9 @@ int mlx4_ib_create_user_cq(struct ib_cq *ibcq,
|
|||
buf_addr = (void *)(unsigned long)ucmd.buf_addr;
|
||||
|
||||
if (!ibcq->umem)
|
||||
ibcq->umem = ib_umem_get(&dev->ib_dev, ucmd.buf_addr,
|
||||
entries * cqe_size,
|
||||
IB_ACCESS_LOCAL_WRITE);
|
||||
ibcq->umem = ib_umem_get_va(&dev->ib_dev, ucmd.buf_addr,
|
||||
entries * cqe_size,
|
||||
IB_ACCESS_LOCAL_WRITE);
|
||||
if (IS_ERR(ibcq->umem)) {
|
||||
err = PTR_ERR(ibcq->umem);
|
||||
goto err_cq;
|
||||
|
|
@ -344,9 +344,9 @@ static int mlx4_alloc_resize_umem(struct mlx4_ib_dev *dev, struct mlx4_ib_cq *cq
|
|||
if (!cq->resize_buf)
|
||||
return -ENOMEM;
|
||||
|
||||
cq->resize_umem = ib_umem_get(&dev->ib_dev, ucmd.buf_addr,
|
||||
entries * cqe_size,
|
||||
IB_ACCESS_LOCAL_WRITE);
|
||||
cq->resize_umem = ib_umem_get_va(&dev->ib_dev, ucmd.buf_addr,
|
||||
entries * cqe_size,
|
||||
IB_ACCESS_LOCAL_WRITE);
|
||||
if (IS_ERR(cq->resize_umem)) {
|
||||
err = PTR_ERR(cq->resize_umem);
|
||||
goto err_buf;
|
||||
|
|
|
|||
|
|
@ -64,8 +64,8 @@ int mlx4_ib_db_map_user(struct ib_udata *udata, unsigned long virt,
|
|||
|
||||
page->user_virt = (virt & PAGE_MASK);
|
||||
page->refcnt = 0;
|
||||
page->umem = ib_umem_get(context->ibucontext.device, virt & PAGE_MASK,
|
||||
PAGE_SIZE, 0);
|
||||
page->umem = ib_umem_get_va(context->ibucontext.device,
|
||||
virt & PAGE_MASK, PAGE_SIZE, 0);
|
||||
if (IS_ERR(page->umem)) {
|
||||
err = PTR_ERR(page->umem);
|
||||
kfree(page);
|
||||
|
|
|
|||
|
|
@ -110,7 +110,7 @@ static struct ib_umem *mlx4_get_umem_mr(struct ib_device *device, u64 start,
|
|||
/*
|
||||
* Force registering the memory as writable if the underlying pages
|
||||
* are writable. This is so rereg can change the access permissions
|
||||
* from readable to writable without having to run through ib_umem_get
|
||||
* from readable to writable without having to run through ib_umem_get_va
|
||||
* again
|
||||
*/
|
||||
if (!ib_access_writable(access_flags)) {
|
||||
|
|
@ -135,7 +135,7 @@ static struct ib_umem *mlx4_get_umem_mr(struct ib_device *device, u64 start,
|
|||
mmap_read_unlock(current->mm);
|
||||
}
|
||||
|
||||
return ib_umem_get(device, start, length, access_flags);
|
||||
return ib_umem_get_va(device, start, length, access_flags);
|
||||
}
|
||||
|
||||
struct ib_mr *mlx4_ib_reg_user_mr(struct ib_pd *pd, u64 start, u64 length,
|
||||
|
|
|
|||
|
|
@ -897,7 +897,7 @@ static int create_rq(struct ib_pd *pd, struct ib_qp_init_attr *init_attr,
|
|||
qp->buf_size = (qp->rq.wqe_cnt << qp->rq.wqe_shift) +
|
||||
(qp->sq.wqe_cnt << qp->sq.wqe_shift);
|
||||
|
||||
qp->umem = ib_umem_get(pd->device, wq.buf_addr, qp->buf_size, 0);
|
||||
qp->umem = ib_umem_get_va(pd->device, wq.buf_addr, qp->buf_size, 0);
|
||||
if (IS_ERR(qp->umem)) {
|
||||
err = PTR_ERR(qp->umem);
|
||||
goto err;
|
||||
|
|
@ -1080,7 +1080,7 @@ static int create_qp_common(struct ib_pd *pd, struct ib_qp_init_attr *init_attr,
|
|||
goto err;
|
||||
|
||||
qp->umem =
|
||||
ib_umem_get(pd->device, ucmd.buf_addr, qp->buf_size, 0);
|
||||
ib_umem_get_va(pd->device, ucmd.buf_addr, qp->buf_size, 0);
|
||||
if (IS_ERR(qp->umem)) {
|
||||
err = PTR_ERR(qp->umem);
|
||||
goto err;
|
||||
|
|
|
|||
|
|
@ -116,7 +116,7 @@ int mlx4_ib_create_srq(struct ib_srq *ib_srq,
|
|||
return err;
|
||||
|
||||
srq->umem =
|
||||
ib_umem_get(ib_srq->device, ucmd.buf_addr, buf_size, 0);
|
||||
ib_umem_get_va(ib_srq->device, ucmd.buf_addr, buf_size, 0);
|
||||
if (IS_ERR(srq->umem))
|
||||
return PTR_ERR(srq->umem);
|
||||
|
||||
|
|
|
|||
|
|
@ -747,9 +747,9 @@ static int create_cq_user(struct mlx5_ib_dev *dev, struct ib_udata *udata,
|
|||
*cqe_size = ucmd.cqe_size;
|
||||
|
||||
if (!cq->ibcq.umem)
|
||||
cq->ibcq.umem = ib_umem_get(&dev->ib_dev, ucmd.buf_addr,
|
||||
entries * ucmd.cqe_size,
|
||||
IB_ACCESS_LOCAL_WRITE);
|
||||
cq->ibcq.umem = ib_umem_get_va(&dev->ib_dev, ucmd.buf_addr,
|
||||
entries * ucmd.cqe_size,
|
||||
IB_ACCESS_LOCAL_WRITE);
|
||||
if (IS_ERR(cq->ibcq.umem))
|
||||
return PTR_ERR(cq->ibcq.umem);
|
||||
|
||||
|
|
@ -1242,9 +1242,9 @@ static int resize_user(struct mlx5_ib_dev *dev, struct mlx5_ib_cq *cq,
|
|||
if (ucmd.cqe_size && SIZE_MAX / ucmd.cqe_size <= entries - 1)
|
||||
return -EINVAL;
|
||||
|
||||
umem = ib_umem_get(&dev->ib_dev, ucmd.buf_addr,
|
||||
(size_t)ucmd.cqe_size * entries,
|
||||
IB_ACCESS_LOCAL_WRITE);
|
||||
umem = ib_umem_get_va(&dev->ib_dev, ucmd.buf_addr,
|
||||
(size_t)ucmd.cqe_size * entries,
|
||||
IB_ACCESS_LOCAL_WRITE);
|
||||
if (IS_ERR(umem)) {
|
||||
err = PTR_ERR(umem);
|
||||
return err;
|
||||
|
|
|
|||
|
|
@ -2287,7 +2287,7 @@ static int devx_umem_get(struct mlx5_ib_dev *dev, struct ib_ucontext *ucontext,
|
|||
return PTR_ERR(umem_dmabuf);
|
||||
obj->umem = &umem_dmabuf->umem;
|
||||
} else {
|
||||
obj->umem = ib_umem_get(&dev->ib_dev, addr, size, access_flags);
|
||||
obj->umem = ib_umem_get_va(&dev->ib_dev, addr, size, access_flags);
|
||||
if (IS_ERR(obj->umem))
|
||||
return PTR_ERR(obj->umem);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -66,8 +66,8 @@ int mlx5_ib_db_map_user(struct mlx5_ib_ucontext *context, unsigned long virt,
|
|||
|
||||
page->user_virt = (virt & PAGE_MASK);
|
||||
page->refcnt = 0;
|
||||
page->umem = ib_umem_get(context->ibucontext.device, virt & PAGE_MASK,
|
||||
PAGE_SIZE, 0);
|
||||
page->umem = ib_umem_get_va(context->ibucontext.device,
|
||||
virt & PAGE_MASK, PAGE_SIZE, 0);
|
||||
if (IS_ERR(page->umem)) {
|
||||
err = PTR_ERR(page->umem);
|
||||
kfree(page);
|
||||
|
|
|
|||
|
|
@ -874,7 +874,7 @@ struct ib_mr *mlx5_ib_reg_user_mr(struct ib_pd *pd, u64 start, u64 length,
|
|||
if (access_flags & IB_ACCESS_ON_DEMAND)
|
||||
return create_user_odp_mr(pd, start, length, iova, access_flags,
|
||||
udata);
|
||||
umem = ib_umem_get(&dev->ib_dev, start, length, access_flags);
|
||||
umem = ib_umem_get_va(&dev->ib_dev, start, length, access_flags);
|
||||
if (IS_ERR(umem))
|
||||
return ERR_CAST(umem);
|
||||
return create_real_mr(pd, umem, iova, access_flags, dmah);
|
||||
|
|
@ -1227,8 +1227,8 @@ struct ib_mr *mlx5_ib_rereg_user_mr(struct ib_mr *ib_mr, int flags, u64 start,
|
|||
struct ib_umem *new_umem;
|
||||
unsigned long page_size;
|
||||
|
||||
new_umem = ib_umem_get(&dev->ib_dev, start, length,
|
||||
new_access_flags);
|
||||
new_umem = ib_umem_get_va(&dev->ib_dev, start, length,
|
||||
new_access_flags);
|
||||
if (IS_ERR(new_umem))
|
||||
return ERR_CAST(new_umem);
|
||||
|
||||
|
|
|
|||
|
|
@ -886,7 +886,7 @@ static int create_user_rq(struct mlx5_ib_dev *dev, struct ib_pd *pd,
|
|||
if (!ucmd->buf_addr)
|
||||
return -EINVAL;
|
||||
|
||||
rwq->umem = ib_umem_get(&dev->ib_dev, ucmd->buf_addr, rwq->buf_size, 0);
|
||||
rwq->umem = ib_umem_get_va(&dev->ib_dev, ucmd->buf_addr, rwq->buf_size, 0);
|
||||
if (IS_ERR(rwq->umem)) {
|
||||
mlx5_ib_dbg(dev, "umem_get failed\n");
|
||||
err = PTR_ERR(rwq->umem);
|
||||
|
|
@ -996,8 +996,8 @@ static int _create_user_qp(struct mlx5_ib_dev *dev, struct ib_pd *pd,
|
|||
|
||||
if (ucmd->buf_addr && ubuffer->buf_size) {
|
||||
ubuffer->buf_addr = ucmd->buf_addr;
|
||||
ubuffer->umem = ib_umem_get(&dev->ib_dev, ubuffer->buf_addr,
|
||||
ubuffer->buf_size, 0);
|
||||
ubuffer->umem = ib_umem_get_va(&dev->ib_dev, ubuffer->buf_addr,
|
||||
ubuffer->buf_size, 0);
|
||||
if (IS_ERR(ubuffer->umem)) {
|
||||
err = PTR_ERR(ubuffer->umem);
|
||||
goto err_bfreg;
|
||||
|
|
@ -1348,8 +1348,8 @@ static int create_raw_packet_qp_sq(struct mlx5_ib_dev *dev,
|
|||
if (ts_format < 0)
|
||||
return ts_format;
|
||||
|
||||
sq->ubuffer.umem = ib_umem_get(&dev->ib_dev, ubuffer->buf_addr,
|
||||
ubuffer->buf_size, 0);
|
||||
sq->ubuffer.umem = ib_umem_get_va(&dev->ib_dev, ubuffer->buf_addr,
|
||||
ubuffer->buf_size, 0);
|
||||
if (IS_ERR(sq->ubuffer.umem))
|
||||
return PTR_ERR(sq->ubuffer.umem);
|
||||
page_size = mlx5_umem_find_best_quantized_pgoff(
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ static int create_srq_user(struct ib_pd *pd, struct mlx5_ib_srq *srq,
|
|||
|
||||
srq->wq_sig = !!(ucmd.flags & MLX5_SRQ_FLAG_SIGNATURE);
|
||||
|
||||
srq->umem = ib_umem_get(pd->device, ucmd.buf_addr, buf_size, 0);
|
||||
srq->umem = ib_umem_get_va(pd->device, ucmd.buf_addr, buf_size, 0);
|
||||
if (IS_ERR(srq->umem)) {
|
||||
mlx5_ib_dbg(dev, "failed umem get, size %d\n", buf_size);
|
||||
err = PTR_ERR(srq->umem);
|
||||
|
|
|
|||
|
|
@ -878,7 +878,7 @@ static struct ib_mr *mthca_reg_user_mr(struct ib_pd *pd, u64 start, u64 length,
|
|||
if (!mr)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
mr->umem = ib_umem_get(pd->device, start, length, acc);
|
||||
mr->umem = ib_umem_get_va(pd->device, start, length, acc);
|
||||
if (IS_ERR(mr->umem)) {
|
||||
err = PTR_ERR(mr->umem);
|
||||
goto err;
|
||||
|
|
|
|||
|
|
@ -864,7 +864,7 @@ struct ib_mr *ocrdma_reg_user_mr(struct ib_pd *ibpd, u64 start, u64 len,
|
|||
mr = kzalloc_obj(*mr);
|
||||
if (!mr)
|
||||
return ERR_PTR(status);
|
||||
mr->umem = ib_umem_get(ibpd->device, start, len, acc);
|
||||
mr->umem = ib_umem_get_va(ibpd->device, start, len, acc);
|
||||
if (IS_ERR(mr->umem)) {
|
||||
status = -EFAULT;
|
||||
goto umem_err;
|
||||
|
|
|
|||
|
|
@ -779,9 +779,9 @@ static inline int qedr_init_user_queue(struct ib_udata *udata,
|
|||
|
||||
q->buf_addr = buf_addr;
|
||||
q->buf_len = buf_len;
|
||||
q->umem = ib_umem_get(&dev->ibdev, q->buf_addr, q->buf_len, access);
|
||||
q->umem = ib_umem_get_va(&dev->ibdev, q->buf_addr, q->buf_len, access);
|
||||
if (IS_ERR(q->umem)) {
|
||||
DP_ERR(dev, "create user queue: failed ib_umem_get, got %ld\n",
|
||||
DP_ERR(dev, "create user queue: failed ib_umem_get_va, got %ld\n",
|
||||
PTR_ERR(q->umem));
|
||||
return PTR_ERR(q->umem);
|
||||
}
|
||||
|
|
@ -1439,13 +1439,14 @@ static int qedr_init_srq_user_params(struct ib_udata *udata,
|
|||
if (rc)
|
||||
return rc;
|
||||
|
||||
srq->prod_umem = ib_umem_get(srq->ibsrq.device, ureq->prod_pair_addr,
|
||||
sizeof(struct rdma_srq_producers), access);
|
||||
srq->prod_umem = ib_umem_get_va(srq->ibsrq.device, ureq->prod_pair_addr,
|
||||
sizeof(struct rdma_srq_producers),
|
||||
access);
|
||||
if (IS_ERR(srq->prod_umem)) {
|
||||
qedr_free_pbl(srq->dev, &srq->usrq.pbl_info, srq->usrq.pbl_tbl);
|
||||
ib_umem_release(srq->usrq.umem);
|
||||
DP_ERR(srq->dev,
|
||||
"create srq: failed ib_umem_get for producer, got %ld\n",
|
||||
"create srq: failed ib_umem_get_va for producer, got %ld\n",
|
||||
PTR_ERR(srq->prod_umem));
|
||||
return PTR_ERR(srq->prod_umem);
|
||||
}
|
||||
|
|
@ -2932,7 +2933,7 @@ struct ib_mr *qedr_reg_user_mr(struct ib_pd *ibpd, u64 start, u64 len,
|
|||
|
||||
mr->type = QEDR_MR_USER;
|
||||
|
||||
mr->umem = ib_umem_get(ibpd->device, start, len, acc);
|
||||
mr->umem = ib_umem_get_va(ibpd->device, start, len, acc);
|
||||
if (IS_ERR(mr->umem)) {
|
||||
rc = -EFAULT;
|
||||
goto err0;
|
||||
|
|
|
|||
|
|
@ -138,8 +138,8 @@ int pvrdma_create_cq(struct ib_cq *ibcq, const struct ib_cq_init_attr *attr,
|
|||
if (ret)
|
||||
goto err_cq;
|
||||
|
||||
cq->umem = ib_umem_get(ibdev, ucmd.buf_addr, ucmd.buf_size,
|
||||
IB_ACCESS_LOCAL_WRITE);
|
||||
cq->umem = ib_umem_get_va(ibdev, ucmd.buf_addr, ucmd.buf_size,
|
||||
IB_ACCESS_LOCAL_WRITE);
|
||||
if (IS_ERR(cq->umem)) {
|
||||
ret = PTR_ERR(cq->umem);
|
||||
goto err_cq;
|
||||
|
|
|
|||
|
|
@ -131,7 +131,7 @@ struct ib_mr *pvrdma_reg_user_mr(struct ib_pd *pd, u64 start, u64 length,
|
|||
return ERR_PTR(-EINVAL);
|
||||
}
|
||||
|
||||
umem = ib_umem_get(pd->device, start, length, access_flags);
|
||||
umem = ib_umem_get_va(pd->device, start, length, access_flags);
|
||||
if (IS_ERR(umem)) {
|
||||
dev_warn(&dev->pdev->dev,
|
||||
"could not get umem for mem region\n");
|
||||
|
|
|
|||
|
|
@ -268,9 +268,9 @@ int pvrdma_create_qp(struct ib_qp *ibqp, struct ib_qp_init_attr *init_attr,
|
|||
|
||||
if (!is_srq) {
|
||||
/* set qp->sq.wqe_cnt, shift, buf_size.. */
|
||||
qp->rumem = ib_umem_get(ibqp->device,
|
||||
ucmd.rbuf_addr,
|
||||
ucmd.rbuf_size, 0);
|
||||
qp->rumem = ib_umem_get_va(ibqp->device,
|
||||
ucmd.rbuf_addr,
|
||||
ucmd.rbuf_size, 0);
|
||||
if (IS_ERR(qp->rumem)) {
|
||||
ret = PTR_ERR(qp->rumem);
|
||||
goto err_qp;
|
||||
|
|
@ -281,8 +281,8 @@ int pvrdma_create_qp(struct ib_qp *ibqp, struct ib_qp_init_attr *init_attr,
|
|||
qp->srq = to_vsrq(init_attr->srq);
|
||||
}
|
||||
|
||||
qp->sumem = ib_umem_get(ibqp->device, ucmd.sbuf_addr,
|
||||
ucmd.sbuf_size, 0);
|
||||
qp->sumem = ib_umem_get_va(ibqp->device, ucmd.sbuf_addr,
|
||||
ucmd.sbuf_size, 0);
|
||||
if (IS_ERR(qp->sumem)) {
|
||||
if (!is_srq)
|
||||
ib_umem_release(qp->rumem);
|
||||
|
|
|
|||
|
|
@ -146,7 +146,7 @@ int pvrdma_create_srq(struct ib_srq *ibsrq, struct ib_srq_init_attr *init_attr,
|
|||
if (ret)
|
||||
goto err_srq;
|
||||
|
||||
srq->umem = ib_umem_get(ibsrq->device, ucmd.buf_addr, ucmd.buf_size, 0);
|
||||
srq->umem = ib_umem_get_va(ibsrq->device, ucmd.buf_addr, ucmd.buf_size, 0);
|
||||
if (IS_ERR(srq->umem)) {
|
||||
ret = PTR_ERR(srq->umem);
|
||||
goto err_srq;
|
||||
|
|
|
|||
|
|
@ -351,7 +351,7 @@ struct ib_mr *rvt_reg_user_mr(struct ib_pd *pd, u64 start, u64 length,
|
|||
if (length == 0)
|
||||
return ERR_PTR(-EINVAL);
|
||||
|
||||
umem = ib_umem_get(pd->device, start, length, mr_access_flags);
|
||||
umem = ib_umem_get_va(pd->device, start, length, mr_access_flags);
|
||||
if (IS_ERR(umem))
|
||||
return ERR_CAST(umem);
|
||||
|
||||
|
|
|
|||
|
|
@ -197,7 +197,7 @@ int rxe_mr_init_user(struct rxe_dev *rxe, u64 start, u64 length,
|
|||
|
||||
rxe_mr_init(access, mr);
|
||||
|
||||
umem = ib_umem_get(&rxe->ib_dev, start, length, access);
|
||||
umem = ib_umem_get_va(&rxe->ib_dev, start, length, access);
|
||||
if (IS_ERR(umem)) {
|
||||
rxe_dbg_mr(mr, "Unable to pin memory region err = %d\n",
|
||||
(int)PTR_ERR(umem));
|
||||
|
|
|
|||
|
|
@ -350,7 +350,7 @@ struct siw_umem *siw_umem_get(struct ib_device *base_dev, u64 start,
|
|||
if (!umem)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
base_mem = ib_umem_get(base_dev, start, len, rights);
|
||||
base_mem = ib_umem_get_va(base_dev, start, len, rights);
|
||||
if (IS_ERR(base_mem)) {
|
||||
rv = PTR_ERR(base_mem);
|
||||
siw_dbg(base_dev, "Cannot pin user memory: %d\n", rv);
|
||||
|
|
@ -385,7 +385,7 @@ struct siw_umem *siw_umem_get(struct ib_device *base_dev, u64 start,
|
|||
|
||||
if (num_pages) {
|
||||
/*
|
||||
* Unexpected size of sg list provided by ib_umem_get()
|
||||
* Unexpected size of sg list provided by ib_umem_get_va()
|
||||
*/
|
||||
siw_dbg(base_dev, "Short SG list, missing %u pages\n",
|
||||
num_pages);
|
||||
|
|
|
|||
|
|
@ -75,8 +75,8 @@ static inline size_t ib_umem_num_pages(struct ib_umem *umem)
|
|||
}
|
||||
#ifdef CONFIG_INFINIBAND_USER_MEM
|
||||
|
||||
struct ib_umem *ib_umem_get(struct ib_device *device, unsigned long addr,
|
||||
size_t size, int access);
|
||||
struct ib_umem *ib_umem_get_va(struct ib_device *device, unsigned long addr,
|
||||
size_t size, int access);
|
||||
void ib_umem_release(struct ib_umem *umem);
|
||||
int ib_umem_copy_from(void *dst, struct ib_umem *umem, size_t offset,
|
||||
size_t length);
|
||||
|
|
@ -160,9 +160,9 @@ void ib_umem_dmabuf_revoke(struct ib_umem_dmabuf *umem_dmabuf);
|
|||
|
||||
#include <linux/err.h>
|
||||
|
||||
static inline struct ib_umem *ib_umem_get(struct ib_device *device,
|
||||
unsigned long addr, size_t size,
|
||||
int access)
|
||||
static inline struct ib_umem *ib_umem_get_va(struct ib_device *device,
|
||||
unsigned long addr, size_t size,
|
||||
int access)
|
||||
{
|
||||
return ERR_PTR(-EOPNOTSUPP);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user