Commit e5580242 authored by Jason Gunthorpe's avatar Jason Gunthorpe Committed by Doug Ledford

rds/ib: Remove ib_get_dma_mr calls

The pd now has a local_dma_lkey member which completely replaces
ib_get_dma_mr, use it instead.
Signed-off-by: default avatarJason Gunthorpe <jgunthorpe@obsidianresearch.com>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent 2f31fa88
...@@ -99,8 +99,6 @@ static void rds_ib_dev_free(struct work_struct *work) ...@@ -99,8 +99,6 @@ static void rds_ib_dev_free(struct work_struct *work)
if (rds_ibdev->mr_pool) if (rds_ibdev->mr_pool)
rds_ib_destroy_mr_pool(rds_ibdev->mr_pool); rds_ib_destroy_mr_pool(rds_ibdev->mr_pool);
if (rds_ibdev->mr)
ib_dereg_mr(rds_ibdev->mr);
if (rds_ibdev->pd) if (rds_ibdev->pd)
ib_dealloc_pd(rds_ibdev->pd); ib_dealloc_pd(rds_ibdev->pd);
...@@ -164,12 +162,6 @@ static void rds_ib_add_one(struct ib_device *device) ...@@ -164,12 +162,6 @@ static void rds_ib_add_one(struct ib_device *device)
goto put_dev; goto put_dev;
} }
rds_ibdev->mr = ib_get_dma_mr(rds_ibdev->pd, IB_ACCESS_LOCAL_WRITE);
if (IS_ERR(rds_ibdev->mr)) {
rds_ibdev->mr = NULL;
goto put_dev;
}
rds_ibdev->mr_pool = rds_ib_create_mr_pool(rds_ibdev); rds_ibdev->mr_pool = rds_ib_create_mr_pool(rds_ibdev);
if (IS_ERR(rds_ibdev->mr_pool)) { if (IS_ERR(rds_ibdev->mr_pool)) {
rds_ibdev->mr_pool = NULL; rds_ibdev->mr_pool = NULL;
......
...@@ -100,7 +100,6 @@ struct rds_ib_connection { ...@@ -100,7 +100,6 @@ struct rds_ib_connection {
/* alphabet soup, IBTA style */ /* alphabet soup, IBTA style */
struct rdma_cm_id *i_cm_id; struct rdma_cm_id *i_cm_id;
struct ib_pd *i_pd; struct ib_pd *i_pd;
struct ib_mr *i_mr;
struct ib_cq *i_send_cq; struct ib_cq *i_send_cq;
struct ib_cq *i_recv_cq; struct ib_cq *i_recv_cq;
...@@ -173,7 +172,6 @@ struct rds_ib_device { ...@@ -173,7 +172,6 @@ struct rds_ib_device {
struct list_head conn_list; struct list_head conn_list;
struct ib_device *dev; struct ib_device *dev;
struct ib_pd *pd; struct ib_pd *pd;
struct ib_mr *mr;
struct rds_ib_mr_pool *mr_pool; struct rds_ib_mr_pool *mr_pool;
unsigned int fmr_max_remaps; unsigned int fmr_max_remaps;
unsigned int max_fmrs; unsigned int max_fmrs;
......
...@@ -269,7 +269,6 @@ static int rds_ib_setup_qp(struct rds_connection *conn) ...@@ -269,7 +269,6 @@ static int rds_ib_setup_qp(struct rds_connection *conn)
/* Protection domain and memory range */ /* Protection domain and memory range */
ic->i_pd = rds_ibdev->pd; ic->i_pd = rds_ibdev->pd;
ic->i_mr = rds_ibdev->mr;
cq_attr.cqe = ic->i_send_ring.w_nr + 1; cq_attr.cqe = ic->i_send_ring.w_nr + 1;
ic->i_send_cq = ib_create_cq(dev, rds_ib_send_cq_comp_handler, ic->i_send_cq = ib_create_cq(dev, rds_ib_send_cq_comp_handler,
...@@ -375,7 +374,7 @@ static int rds_ib_setup_qp(struct rds_connection *conn) ...@@ -375,7 +374,7 @@ static int rds_ib_setup_qp(struct rds_connection *conn)
rds_ib_recv_init_ack(ic); rds_ib_recv_init_ack(ic);
rdsdebug("conn %p pd %p mr %p cq %p %p\n", conn, ic->i_pd, ic->i_mr, rdsdebug("conn %p pd %p cq %p %p\n", conn, ic->i_pd,
ic->i_send_cq, ic->i_recv_cq); ic->i_send_cq, ic->i_recv_cq);
out: out:
...@@ -678,7 +677,6 @@ void rds_ib_conn_shutdown(struct rds_connection *conn) ...@@ -678,7 +677,6 @@ void rds_ib_conn_shutdown(struct rds_connection *conn)
ic->i_cm_id = NULL; ic->i_cm_id = NULL;
ic->i_pd = NULL; ic->i_pd = NULL;
ic->i_mr = NULL;
ic->i_send_cq = NULL; ic->i_send_cq = NULL;
ic->i_recv_cq = NULL; ic->i_recv_cq = NULL;
ic->i_send_hdrs = NULL; ic->i_send_hdrs = NULL;
......
...@@ -62,12 +62,12 @@ void rds_ib_recv_init_ring(struct rds_ib_connection *ic) ...@@ -62,12 +62,12 @@ void rds_ib_recv_init_ring(struct rds_ib_connection *ic)
sge = &recv->r_sge[0]; sge = &recv->r_sge[0];
sge->addr = ic->i_recv_hdrs_dma + (i * sizeof(struct rds_header)); sge->addr = ic->i_recv_hdrs_dma + (i * sizeof(struct rds_header));
sge->length = sizeof(struct rds_header); sge->length = sizeof(struct rds_header);
sge->lkey = ic->i_mr->lkey; sge->lkey = ic->i_pd->local_dma_lkey;
sge = &recv->r_sge[1]; sge = &recv->r_sge[1];
sge->addr = 0; sge->addr = 0;
sge->length = RDS_FRAG_SIZE; sge->length = RDS_FRAG_SIZE;
sge->lkey = ic->i_mr->lkey; sge->lkey = ic->i_pd->local_dma_lkey;
} }
} }
...@@ -520,7 +520,7 @@ void rds_ib_recv_init_ack(struct rds_ib_connection *ic) ...@@ -520,7 +520,7 @@ void rds_ib_recv_init_ack(struct rds_ib_connection *ic)
sge->addr = ic->i_ack_dma; sge->addr = ic->i_ack_dma;
sge->length = sizeof(struct rds_header); sge->length = sizeof(struct rds_header);
sge->lkey = ic->i_mr->lkey; sge->lkey = ic->i_pd->local_dma_lkey;
wr->sg_list = sge; wr->sg_list = sge;
wr->num_sge = 1; wr->num_sge = 1;
......
...@@ -202,9 +202,9 @@ void rds_ib_send_init_ring(struct rds_ib_connection *ic) ...@@ -202,9 +202,9 @@ void rds_ib_send_init_ring(struct rds_ib_connection *ic)
sge = &send->s_sge[0]; sge = &send->s_sge[0];
sge->addr = ic->i_send_hdrs_dma + (i * sizeof(struct rds_header)); sge->addr = ic->i_send_hdrs_dma + (i * sizeof(struct rds_header));
sge->length = sizeof(struct rds_header); sge->length = sizeof(struct rds_header);
sge->lkey = ic->i_mr->lkey; sge->lkey = ic->i_pd->local_dma_lkey;
send->s_sge[1].lkey = ic->i_mr->lkey; send->s_sge[1].lkey = ic->i_pd->local_dma_lkey;
} }
} }
...@@ -813,7 +813,7 @@ int rds_ib_xmit_atomic(struct rds_connection *conn, struct rm_atomic_op *op) ...@@ -813,7 +813,7 @@ int rds_ib_xmit_atomic(struct rds_connection *conn, struct rm_atomic_op *op)
/* Convert our struct scatterlist to struct ib_sge */ /* Convert our struct scatterlist to struct ib_sge */
send->s_sge[0].addr = ib_sg_dma_address(ic->i_cm_id->device, op->op_sg); send->s_sge[0].addr = ib_sg_dma_address(ic->i_cm_id->device, op->op_sg);
send->s_sge[0].length = ib_sg_dma_len(ic->i_cm_id->device, op->op_sg); send->s_sge[0].length = ib_sg_dma_len(ic->i_cm_id->device, op->op_sg);
send->s_sge[0].lkey = ic->i_mr->lkey; send->s_sge[0].lkey = ic->i_pd->local_dma_lkey;
rdsdebug("rva %Lx rpa %Lx len %u\n", op->op_remote_addr, rdsdebug("rva %Lx rpa %Lx len %u\n", op->op_remote_addr,
send->s_sge[0].addr, send->s_sge[0].length); send->s_sge[0].addr, send->s_sge[0].length);
...@@ -927,7 +927,7 @@ int rds_ib_xmit_rdma(struct rds_connection *conn, struct rm_rdma_op *op) ...@@ -927,7 +927,7 @@ int rds_ib_xmit_rdma(struct rds_connection *conn, struct rm_rdma_op *op)
send->s_sge[j].addr = send->s_sge[j].addr =
ib_sg_dma_address(ic->i_cm_id->device, scat); ib_sg_dma_address(ic->i_cm_id->device, scat);
send->s_sge[j].length = len; send->s_sge[j].length = len;
send->s_sge[j].lkey = ic->i_mr->lkey; send->s_sge[j].lkey = ic->i_pd->local_dma_lkey;
sent += len; sent += len;
rdsdebug("ic %p sent %d remote_addr %llu\n", ic, sent, remote_addr); rdsdebug("ic %p sent %d remote_addr %llu\n", ic, sent, remote_addr);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment