Skip to content

Commit

Permalink
net/9p: Remove ib_get_dma_mr calls
Browse files Browse the repository at this point in the history
The pd now has a local_dma_lkey member which completely replaces
ib_get_dma_mr, use it instead.

Signed-off-by: Jason Gunthorpe <[email protected]>
Tested-by: Dominique Martinet <[email protected]>
Signed-off-by: Doug Ledford <[email protected]>
  • Loading branch information
jgunthorpe authored and Doug Ledford committed Aug 30, 2015
1 parent 5a78395 commit 2f31fa8
Showing 1 changed file with 2 additions and 24 deletions.
26 changes: 2 additions & 24 deletions net/9p/trans_rdma.c
Original file line number Diff line number Diff line change
Expand Up @@ -94,8 +94,6 @@ struct p9_trans_rdma {
struct ib_pd *pd;
struct ib_qp *qp;
struct ib_cq *cq;
struct ib_mr *dma_mr;
u32 lkey;
long timeout;
int sq_depth;
struct semaphore sq_sem;
Expand Down Expand Up @@ -382,9 +380,6 @@ static void rdma_destroy_trans(struct p9_trans_rdma *rdma)
if (!rdma)
return;

if (rdma->dma_mr && !IS_ERR(rdma->dma_mr))
ib_dereg_mr(rdma->dma_mr);

if (rdma->qp && !IS_ERR(rdma->qp))
ib_destroy_qp(rdma->qp);

Expand Down Expand Up @@ -415,7 +410,7 @@ post_recv(struct p9_client *client, struct p9_rdma_context *c)

sge.addr = c->busa;
sge.length = client->msize;
sge.lkey = rdma->lkey;
sge.lkey = rdma->pd->local_dma_lkey;

wr.next = NULL;
c->wc_op = IB_WC_RECV;
Expand Down Expand Up @@ -506,7 +501,7 @@ static int rdma_request(struct p9_client *client, struct p9_req_t *req)

sge.addr = c->busa;
sge.length = c->req->tc->size;
sge.lkey = rdma->lkey;
sge.lkey = rdma->pd->local_dma_lkey;

wr.next = NULL;
c->wc_op = IB_WC_SEND;
Expand Down Expand Up @@ -647,7 +642,6 @@ rdma_create_trans(struct p9_client *client, const char *addr, char *args)
struct p9_trans_rdma *rdma;
struct rdma_conn_param conn_param;
struct ib_qp_init_attr qp_attr;
struct ib_device_attr devattr;
struct ib_cq_init_attr cq_attr = {};

/* Parse the transport specific mount options */
Expand Down Expand Up @@ -700,11 +694,6 @@ rdma_create_trans(struct p9_client *client, const char *addr, char *args)
if (err || (rdma->state != P9_RDMA_ROUTE_RESOLVED))
goto error;

/* Query the device attributes */
err = ib_query_device(rdma->cm_id->device, &devattr);
if (err)
goto error;

/* Create the Completion Queue */
cq_attr.cqe = opts.sq_depth + opts.rq_depth + 1;
rdma->cq = ib_create_cq(rdma->cm_id->device, cq_comp_handler,
Expand All @@ -719,17 +708,6 @@ rdma_create_trans(struct p9_client *client, const char *addr, char *args)
if (IS_ERR(rdma->pd))
goto error;

/* Cache the DMA lkey in the transport */
rdma->dma_mr = NULL;
if (devattr.device_cap_flags & IB_DEVICE_LOCAL_DMA_LKEY)
rdma->lkey = rdma->cm_id->device->local_dma_lkey;
else {
rdma->dma_mr = ib_get_dma_mr(rdma->pd, IB_ACCESS_LOCAL_WRITE);
if (IS_ERR(rdma->dma_mr))
goto error;
rdma->lkey = rdma->dma_mr->lkey;
}

/* Create the Queue Pair */
memset(&qp_attr, 0, sizeof qp_attr);
qp_attr.event_handler = qp_event_handler;
Expand Down

0 comments on commit 2f31fa8

Please sign in to comment.