IB/{core,hw}: Have ib_umem_get extract the ib_ucontext from ib_udata
ib_umem_get() can only be called in a method callback, which always has a udata parameter. This allows ib_umem_get() to derive the ucontext pointer directly from the udata without requiring the drivers to find it in some way or another. Signed-off-by: Jason Gunthorpe <jgg@mellanox.com> Signed-off-by: Shamir Rabinovitch <shamir.rabinovitch@oracle.com>
This commit is contained in:
@@ -141,7 +141,7 @@ struct ib_cq *pvrdma_create_cq(struct ib_device *ibdev,
|
||||
goto err_cq;
|
||||
}
|
||||
|
||||
cq->umem = ib_umem_get(context, ucmd.buf_addr, ucmd.buf_size,
|
||||
cq->umem = ib_umem_get(udata, ucmd.buf_addr, ucmd.buf_size,
|
||||
IB_ACCESS_LOCAL_WRITE, 1);
|
||||
if (IS_ERR(cq->umem)) {
|
||||
ret = PTR_ERR(cq->umem);
|
||||
|
@@ -126,8 +126,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->uobject->context, start,
|
||||
length, access_flags, 0);
|
||||
umem = ib_umem_get(udata, start, length, access_flags, 0);
|
||||
if (IS_ERR(umem)) {
|
||||
dev_warn(&dev->pdev->dev,
|
||||
"could not get umem for mem region\n");
|
||||
|
@@ -262,8 +262,7 @@ struct ib_qp *pvrdma_create_qp(struct ib_pd *pd,
|
||||
|
||||
if (!is_srq) {
|
||||
/* set qp->sq.wqe_cnt, shift, buf_size.. */
|
||||
qp->rumem = ib_umem_get(pd->uobject->context,
|
||||
ucmd.rbuf_addr,
|
||||
qp->rumem = ib_umem_get(udata, ucmd.rbuf_addr,
|
||||
ucmd.rbuf_size, 0, 0);
|
||||
if (IS_ERR(qp->rumem)) {
|
||||
ret = PTR_ERR(qp->rumem);
|
||||
@@ -275,8 +274,7 @@ struct ib_qp *pvrdma_create_qp(struct ib_pd *pd,
|
||||
qp->srq = to_vsrq(init_attr->srq);
|
||||
}
|
||||
|
||||
qp->sumem = ib_umem_get(pd->uobject->context,
|
||||
ucmd.sbuf_addr,
|
||||
qp->sumem = ib_umem_get(udata, ucmd.sbuf_addr,
|
||||
ucmd.sbuf_size, 0, 0);
|
||||
if (IS_ERR(qp->sumem)) {
|
||||
if (!is_srq)
|
||||
|
@@ -153,9 +153,7 @@ struct ib_srq *pvrdma_create_srq(struct ib_pd *pd,
|
||||
goto err_srq;
|
||||
}
|
||||
|
||||
srq->umem = ib_umem_get(pd->uobject->context,
|
||||
ucmd.buf_addr,
|
||||
ucmd.buf_size, 0, 0);
|
||||
srq->umem = ib_umem_get(udata, ucmd.buf_addr, ucmd.buf_size, 0, 0);
|
||||
if (IS_ERR(srq->umem)) {
|
||||
ret = PTR_ERR(srq->umem);
|
||||
goto err_srq;
|
||||
|
Viittaa uudesa ongelmassa
Block a user