Lines Matching refs:fmr

389 	struct qib_fmr *fmr;  in qib_alloc_fmr()  local
396 fmr = kzalloc(sizeof(*fmr) + m * sizeof(fmr->mr.map[0]), GFP_KERNEL); in qib_alloc_fmr()
397 if (!fmr) in qib_alloc_fmr()
400 rval = init_qib_mregion(&fmr->mr, pd, fmr_attr->max_pages); in qib_alloc_fmr()
408 rval = qib_alloc_lkey(&fmr->mr, 0); in qib_alloc_fmr()
411 fmr->ibfmr.rkey = fmr->mr.lkey; in qib_alloc_fmr()
412 fmr->ibfmr.lkey = fmr->mr.lkey; in qib_alloc_fmr()
417 fmr->mr.access_flags = mr_access_flags; in qib_alloc_fmr()
418 fmr->mr.max_segs = fmr_attr->max_pages; in qib_alloc_fmr()
419 fmr->mr.page_shift = fmr_attr->page_shift; in qib_alloc_fmr()
421 ret = &fmr->ibfmr; in qib_alloc_fmr()
426 deinit_qib_mregion(&fmr->mr); in qib_alloc_fmr()
428 kfree(fmr); in qib_alloc_fmr()
446 struct qib_fmr *fmr = to_ifmr(ibfmr); in qib_map_phys_fmr() local
453 i = atomic_read(&fmr->mr.refcount); in qib_map_phys_fmr()
457 if (list_len > fmr->mr.max_segs) { in qib_map_phys_fmr()
463 fmr->mr.user_base = iova; in qib_map_phys_fmr()
464 fmr->mr.iova = iova; in qib_map_phys_fmr()
465 ps = 1 << fmr->mr.page_shift; in qib_map_phys_fmr()
466 fmr->mr.length = list_len * ps; in qib_map_phys_fmr()
470 fmr->mr.map[m]->segs[n].vaddr = (void *) page_list[i]; in qib_map_phys_fmr()
471 fmr->mr.map[m]->segs[n].length = ps; in qib_map_phys_fmr()
492 struct qib_fmr *fmr; in qib_unmap_fmr() local
496 list_for_each_entry(fmr, fmr_list, ibfmr.list) { in qib_unmap_fmr()
497 rkt = &to_idev(fmr->ibfmr.device)->lk_table; in qib_unmap_fmr()
499 fmr->mr.user_base = 0; in qib_unmap_fmr()
500 fmr->mr.iova = 0; in qib_unmap_fmr()
501 fmr->mr.length = 0; in qib_unmap_fmr()
515 struct qib_fmr *fmr = to_ifmr(ibfmr); in qib_dealloc_fmr() local
519 qib_free_lkey(&fmr->mr); in qib_dealloc_fmr()
520 qib_put_mr(&fmr->mr); /* will set completion if last */ in qib_dealloc_fmr()
521 timeout = wait_for_completion_timeout(&fmr->mr.comp, in qib_dealloc_fmr()
524 qib_get_mr(&fmr->mr); in qib_dealloc_fmr()
528 deinit_qib_mregion(&fmr->mr); in qib_dealloc_fmr()
529 kfree(fmr); in qib_dealloc_fmr()