Lines Matching refs:frmr
112 r.frmr.fr_work); in __frwr_recovery_worker()
113 struct rpcrdma_xprt *r_xprt = r->r.frmr.fr_xprt; in __frwr_recovery_worker()
117 if (ib_dereg_mr(r->r.frmr.fr_mr)) in __frwr_recovery_worker()
120 r->r.frmr.fr_mr = ib_alloc_mr(pd, IB_MR_TYPE_MEM_REG, depth); in __frwr_recovery_worker()
121 if (IS_ERR(r->r.frmr.fr_mr)) in __frwr_recovery_worker()
125 r->r.frmr.fr_state = FRMR_IS_INVALID; in __frwr_recovery_worker()
140 INIT_WORK(&r->r.frmr.fr_work, __frwr_recovery_worker); in __frwr_queue_recovery()
141 queue_work(frwr_recovery_wq, &r->r.frmr.fr_work); in __frwr_queue_recovery()
148 struct rpcrdma_frmr *f = &r->r.frmr; in __frwr_init()
182 rc = ib_dereg_mr(r->r.frmr.fr_mr); in __frwr_release()
186 kfree(r->r.frmr.sg); in __frwr_release()
264 r->r.frmr.fr_state = FRMR_IS_STALE; in frwr_sendcompletion()
302 r->r.frmr.fr_xprt = r_xprt; in frwr_op_init()
320 struct rpcrdma_frmr *frmr; in frwr_op_map() local
335 } while (mw->r.frmr.fr_state != FRMR_IS_INVALID); in frwr_op_map()
336 frmr = &mw->r.frmr; in frwr_op_map()
337 frmr->fr_state = FRMR_IS_VALID; in frwr_op_map()
338 mr = frmr->fr_mr; in frwr_op_map()
345 sg_set_page(&frmr->sg[i], in frwr_op_map()
350 sg_set_buf(&frmr->sg[i], seg->mr_offset, in frwr_op_map()
361 frmr->sg_nents = i; in frwr_op_map()
363 dma_nents = ib_dma_map_sg(device, frmr->sg, frmr->sg_nents, direction); in frwr_op_map()
366 __func__, frmr->sg, frmr->sg_nents); in frwr_op_map()
370 n = ib_map_mr_sg(mr, frmr->sg, frmr->sg_nents, PAGE_SIZE); in frwr_op_map()
371 if (unlikely(n != frmr->sg_nents)) { in frwr_op_map()
373 __func__, frmr->fr_mr, n, frmr->sg_nents); in frwr_op_map()
379 __func__, mw, frmr->sg_nents, mr->length); in frwr_op_map()
404 seg1->mr_nsegs = frmr->sg_nents; in frwr_op_map()
407 return frmr->sg_nents; in frwr_op_map()
411 ib_dma_unmap_sg(device, frmr->sg, dma_nents, direction); in frwr_op_map()
425 struct rpcrdma_frmr *frmr = &mw->r.frmr; in frwr_op_unmap() local
432 frmr->fr_state = FRMR_IS_INVALID; in frwr_op_unmap()
437 invalidate_wr.ex.invalidate_rkey = frmr->fr_mr->rkey; in frwr_op_unmap()
440 ib_dma_unmap_sg(ia->ri_device, frmr->sg, frmr->sg_nents, seg1->mr_dir); in frwr_op_unmap()