Lines Matching refs:frmr
228 struct svc_rdma_fastreg_mr *frmr = svc_rdma_get_frmr(xprt); in rdma_read_chunk_frmr() local
233 if (IS_ERR(frmr)) in rdma_read_chunk_frmr()
237 ctxt->frmr = frmr; in rdma_read_chunk_frmr()
241 frmr->direction = DMA_FROM_DEVICE; in rdma_read_chunk_frmr()
242 frmr->access_flags = (IB_ACCESS_LOCAL_WRITE|IB_ACCESS_REMOTE_WRITE); in rdma_read_chunk_frmr()
243 frmr->sg_nents = nents; in rdma_read_chunk_frmr()
254 sg_set_page(&frmr->sg[pno], rqstp->rq_arg.pages[pg_no], in rdma_read_chunk_frmr()
275 frmr->sg, frmr->sg_nents, in rdma_read_chunk_frmr()
276 frmr->direction); in rdma_read_chunk_frmr()
279 frmr->sg); in rdma_read_chunk_frmr()
284 n = ib_map_mr_sg(frmr->mr, frmr->sg, frmr->sg_nents, PAGE_SIZE); in rdma_read_chunk_frmr()
285 if (unlikely(n != frmr->sg_nents)) { in rdma_read_chunk_frmr()
287 frmr->mr, n, frmr->sg_nents); in rdma_read_chunk_frmr()
292 key = (u8)(frmr->mr->lkey & 0x000000FF); in rdma_read_chunk_frmr()
293 ib_update_fast_reg_key(frmr->mr, ++key); in rdma_read_chunk_frmr()
295 ctxt->sge[0].addr = frmr->mr->iova; in rdma_read_chunk_frmr()
296 ctxt->sge[0].lkey = frmr->mr->lkey; in rdma_read_chunk_frmr()
297 ctxt->sge[0].length = frmr->mr->length; in rdma_read_chunk_frmr()
306 reg_wr.mr = frmr->mr; in rdma_read_chunk_frmr()
307 reg_wr.key = frmr->mr->lkey; in rdma_read_chunk_frmr()
308 reg_wr.access = frmr->access_flags; in rdma_read_chunk_frmr()
321 read_wr.wr.ex.invalidate_rkey = ctxt->frmr->mr->lkey; in rdma_read_chunk_frmr()
330 inv_wr.ex.invalidate_rkey = frmr->mr->lkey; in rdma_read_chunk_frmr()
350 frmr->sg, frmr->sg_nents, frmr->direction); in rdma_read_chunk_frmr()
352 svc_rdma_put_frmr(xprt, frmr); in rdma_read_chunk_frmr()