Lines Matching defs:frmr

40 	if (cmpxchg(&ibmr->u.frmr.fr_state,
43 /* enforce order of ibmr->u.frmr.fr_state update
58 struct rds_ib_frmr *frmr;
77 frmr = &ibmr->u.frmr;
78 frmr->mr = ib_alloc_mr(rds_ibdev->pd, IB_MR_TYPE_MEM_REG,
80 if (IS_ERR(frmr->mr)) {
82 err = PTR_ERR(frmr->mr);
95 frmr->fr_state = FRMR_IS_FREE;
96 init_waitqueue_head(&frmr->fr_inv_done);
97 init_waitqueue_head(&frmr->fr_reg_done);
125 struct rds_ib_frmr *frmr = &ibmr->u.frmr;
134 ret = ib_map_mr_sg_zbva(frmr->mr, ibmr->sg, ibmr->sg_dma_len,
139 if (cmpxchg(&frmr->fr_state,
150 ib_update_fast_reg_key(frmr->mr, ibmr->remap_count++);
151 frmr->fr_reg = true;
157 reg_wr.mr = frmr->mr;
158 reg_wr.key = frmr->mr->rkey;
180 wait_event(frmr->fr_reg_done, !frmr->fr_reg);
193 struct rds_ib_frmr *frmr = &ibmr->u.frmr;
206 frmr->sg_byte_len = 0;
215 frmr->sg_byte_len = 0;
216 frmr->dma_npages = 0;
224 frmr->sg_byte_len += dma_len;
229 ++frmr->dma_npages;
236 ++frmr->dma_npages;
241 frmr->dma_npages += len >> PAGE_SHIFT;
243 if (frmr->dma_npages > ibmr->pool->max_pages) {
269 struct rds_ib_frmr *frmr = &ibmr->u.frmr;
273 if (!i_cm_id || !i_cm_id->qp || !frmr->mr)
276 if (frmr->fr_state != FRMR_IS_INUSE)
284 frmr->fr_inv = true;
285 s_wr = &frmr->fr_wr;
290 s_wr->ex.invalidate_rkey = frmr->mr->rkey;
296 frmr->fr_inv = false;
297 /* enforce order of frmr->fr_inv update
308 * triggered by function "rds_ib_reg_frmr" as it is releases frmr
316 wait_event(frmr->fr_inv_done, frmr->fr_state != FRMR_IS_INUSE);
325 struct rds_ib_frmr *frmr = &ibmr->u.frmr;
331 "frmr completion <%pI4,%pI4> status %u(%s), vendor_err 0x%x, disconnecting and reconnecting\n",
339 if (frmr->fr_inv) {
341 frmr->fr_inv = false;
342 wake_up(&frmr->fr_inv_done);
345 if (frmr->fr_reg) {
346 frmr->fr_reg = false;
347 wake_up(&frmr->fr_reg_done);
350 /* enforce order of frmr->{fr_reg,fr_inv} update
361 struct rds_ib_frmr *frmr;
380 frmr = &ibmr->u.frmr;
382 if (freed < goal || frmr->fr_state == FRMR_IS_STALE) {
384 if (frmr->fr_state == FRMR_IS_INUSE)
392 if (frmr->mr)
393 ib_dereg_mr(frmr->mr);
407 struct rds_ib_frmr *frmr;
421 frmr = &ibmr->u.frmr;
422 } while (frmr->fr_state != FRMR_IS_FREE);
428 *key = frmr->mr->rkey;
440 struct rds_ib_frmr *frmr = &ibmr->u.frmr;
442 if (frmr->fr_state == FRMR_IS_STALE)