RDMA: Cleanup undesired pd->uobject usage
Drivers should be using udata to determine if a method is invoked from user space or kernel space. A pd does not necessarily say a different objects is kernel or user. Transforming the tests to use udata eliminates a large number of uobject references from the drivers. Signed-off-by: Shamir Rabinovitch <shamir.rabinovitch@oracle.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:

committed by
Jason Gunthorpe

parent
af8d70375d
commit
e00b64f7c5
@@ -981,7 +981,8 @@ static void mthca_adjust_qp_caps(struct mthca_dev *dev,
|
||||
*/
|
||||
static int mthca_alloc_wqe_buf(struct mthca_dev *dev,
|
||||
struct mthca_pd *pd,
|
||||
struct mthca_qp *qp)
|
||||
struct mthca_qp *qp,
|
||||
struct ib_udata *udata)
|
||||
{
|
||||
int size;
|
||||
int err = -ENOMEM;
|
||||
@@ -1048,7 +1049,7 @@ static int mthca_alloc_wqe_buf(struct mthca_dev *dev,
|
||||
* allocate anything. All we need is to calculate the WQE
|
||||
* sizes and the send_wqe_offset, so we're done now.
|
||||
*/
|
||||
if (pd->ibpd.uobject)
|
||||
if (udata)
|
||||
return 0;
|
||||
|
||||
size = PAGE_ALIGN(qp->send_wqe_offset +
|
||||
@@ -1155,7 +1156,8 @@ static int mthca_alloc_qp_common(struct mthca_dev *dev,
|
||||
struct mthca_cq *send_cq,
|
||||
struct mthca_cq *recv_cq,
|
||||
enum ib_sig_type send_policy,
|
||||
struct mthca_qp *qp)
|
||||
struct mthca_qp *qp,
|
||||
struct ib_udata *udata)
|
||||
{
|
||||
int ret;
|
||||
int i;
|
||||
@@ -1178,7 +1180,7 @@ static int mthca_alloc_qp_common(struct mthca_dev *dev,
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = mthca_alloc_wqe_buf(dev, pd, qp);
|
||||
ret = mthca_alloc_wqe_buf(dev, pd, qp, udata);
|
||||
if (ret) {
|
||||
mthca_unmap_memfree(dev, qp);
|
||||
return ret;
|
||||
@@ -1191,7 +1193,7 @@ static int mthca_alloc_qp_common(struct mthca_dev *dev,
|
||||
* will be allocated and buffers will be initialized in
|
||||
* userspace.
|
||||
*/
|
||||
if (pd->ibpd.uobject)
|
||||
if (udata)
|
||||
return 0;
|
||||
|
||||
ret = mthca_alloc_memfree(dev, qp);
|
||||
@@ -1285,7 +1287,8 @@ int mthca_alloc_qp(struct mthca_dev *dev,
|
||||
enum ib_qp_type type,
|
||||
enum ib_sig_type send_policy,
|
||||
struct ib_qp_cap *cap,
|
||||
struct mthca_qp *qp)
|
||||
struct mthca_qp *qp,
|
||||
struct ib_udata *udata)
|
||||
{
|
||||
int err;
|
||||
|
||||
@@ -1308,7 +1311,7 @@ int mthca_alloc_qp(struct mthca_dev *dev,
|
||||
qp->port = 0;
|
||||
|
||||
err = mthca_alloc_qp_common(dev, pd, send_cq, recv_cq,
|
||||
send_policy, qp);
|
||||
send_policy, qp, udata);
|
||||
if (err) {
|
||||
mthca_free(&dev->qp_table.alloc, qp->qpn);
|
||||
return err;
|
||||
@@ -1360,7 +1363,8 @@ int mthca_alloc_sqp(struct mthca_dev *dev,
|
||||
struct ib_qp_cap *cap,
|
||||
int qpn,
|
||||
int port,
|
||||
struct mthca_sqp *sqp)
|
||||
struct mthca_sqp *sqp,
|
||||
struct ib_udata *udata)
|
||||
{
|
||||
u32 mqpn = qpn * 2 + dev->qp_table.sqp_start + port - 1;
|
||||
int err;
|
||||
@@ -1391,7 +1395,7 @@ int mthca_alloc_sqp(struct mthca_dev *dev,
|
||||
sqp->qp.transport = MLX;
|
||||
|
||||
err = mthca_alloc_qp_common(dev, pd, send_cq, recv_cq,
|
||||
send_policy, &sqp->qp);
|
||||
send_policy, &sqp->qp, udata);
|
||||
if (err)
|
||||
goto err_out_free;
|
||||
|
||||
|
Reference in New Issue
Block a user