Lines Matching refs:fmr

382 	struct qib_fmr *fmr;  in qib_alloc_fmr()  local
389 fmr = kzalloc(sizeof(*fmr) + m * sizeof(fmr->mr.map[0]), GFP_KERNEL); in qib_alloc_fmr()
390 if (!fmr) in qib_alloc_fmr()
393 rval = init_qib_mregion(&fmr->mr, pd, fmr_attr->max_pages); in qib_alloc_fmr()
401 rval = qib_alloc_lkey(&fmr->mr, 0); in qib_alloc_fmr()
404 fmr->ibfmr.rkey = fmr->mr.lkey; in qib_alloc_fmr()
405 fmr->ibfmr.lkey = fmr->mr.lkey; in qib_alloc_fmr()
410 fmr->mr.access_flags = mr_access_flags; in qib_alloc_fmr()
411 fmr->mr.max_segs = fmr_attr->max_pages; in qib_alloc_fmr()
412 fmr->mr.page_shift = fmr_attr->page_shift; in qib_alloc_fmr()
414 ret = &fmr->ibfmr; in qib_alloc_fmr()
419 deinit_qib_mregion(&fmr->mr); in qib_alloc_fmr()
421 kfree(fmr); in qib_alloc_fmr()
439 struct qib_fmr *fmr = to_ifmr(ibfmr); in qib_map_phys_fmr() local
446 i = atomic_read(&fmr->mr.refcount); in qib_map_phys_fmr()
450 if (list_len > fmr->mr.max_segs) { in qib_map_phys_fmr()
456 fmr->mr.user_base = iova; in qib_map_phys_fmr()
457 fmr->mr.iova = iova; in qib_map_phys_fmr()
458 ps = 1 << fmr->mr.page_shift; in qib_map_phys_fmr()
459 fmr->mr.length = list_len * ps; in qib_map_phys_fmr()
463 fmr->mr.map[m]->segs[n].vaddr = (void *) page_list[i]; in qib_map_phys_fmr()
464 fmr->mr.map[m]->segs[n].length = ps; in qib_map_phys_fmr()
485 struct qib_fmr *fmr; in qib_unmap_fmr() local
489 list_for_each_entry(fmr, fmr_list, ibfmr.list) { in qib_unmap_fmr()
490 rkt = &to_idev(fmr->ibfmr.device)->lk_table; in qib_unmap_fmr()
492 fmr->mr.user_base = 0; in qib_unmap_fmr()
493 fmr->mr.iova = 0; in qib_unmap_fmr()
494 fmr->mr.length = 0; in qib_unmap_fmr()
508 struct qib_fmr *fmr = to_ifmr(ibfmr); in qib_dealloc_fmr() local
512 qib_free_lkey(&fmr->mr); in qib_dealloc_fmr()
513 qib_put_mr(&fmr->mr); /* will set completion if last */ in qib_dealloc_fmr()
514 timeout = wait_for_completion_timeout(&fmr->mr.comp, in qib_dealloc_fmr()
517 qib_get_mr(&fmr->mr); in qib_dealloc_fmr()
521 deinit_qib_mregion(&fmr->mr); in qib_dealloc_fmr()
522 kfree(fmr); in qib_dealloc_fmr()