Lines Matching refs:fmr

285 	struct ipath_fmr *fmr;  in ipath_alloc_fmr()  local
291 fmr = kmalloc(sizeof *fmr + m * sizeof fmr->mr.map[0], GFP_KERNEL); in ipath_alloc_fmr()
292 if (!fmr) in ipath_alloc_fmr()
297 fmr->mr.map[i] = kmalloc(sizeof *fmr->mr.map[0], in ipath_alloc_fmr()
299 if (!fmr->mr.map[i]) in ipath_alloc_fmr()
302 fmr->mr.mapsz = m; in ipath_alloc_fmr()
308 if (!ipath_alloc_lkey(&to_idev(pd->device)->lk_table, &fmr->mr)) in ipath_alloc_fmr()
310 fmr->ibfmr.rkey = fmr->ibfmr.lkey = fmr->mr.lkey; in ipath_alloc_fmr()
315 fmr->mr.pd = pd; in ipath_alloc_fmr()
316 fmr->mr.user_base = 0; in ipath_alloc_fmr()
317 fmr->mr.iova = 0; in ipath_alloc_fmr()
318 fmr->mr.length = 0; in ipath_alloc_fmr()
319 fmr->mr.offset = 0; in ipath_alloc_fmr()
320 fmr->mr.access_flags = mr_access_flags; in ipath_alloc_fmr()
321 fmr->mr.max_segs = fmr_attr->max_pages; in ipath_alloc_fmr()
322 fmr->page_shift = fmr_attr->page_shift; in ipath_alloc_fmr()
324 ret = &fmr->ibfmr; in ipath_alloc_fmr()
329 kfree(fmr->mr.map[--i]); in ipath_alloc_fmr()
330 kfree(fmr); in ipath_alloc_fmr()
350 struct ipath_fmr *fmr = to_ifmr(ibfmr); in ipath_map_phys_fmr() local
357 if (list_len > fmr->mr.max_segs) { in ipath_map_phys_fmr()
363 fmr->mr.user_base = iova; in ipath_map_phys_fmr()
364 fmr->mr.iova = iova; in ipath_map_phys_fmr()
365 ps = 1 << fmr->page_shift; in ipath_map_phys_fmr()
366 fmr->mr.length = list_len * ps; in ipath_map_phys_fmr()
369 ps = 1 << fmr->page_shift; in ipath_map_phys_fmr()
371 fmr->mr.map[m]->segs[n].vaddr = (void *) page_list[i]; in ipath_map_phys_fmr()
372 fmr->mr.map[m]->segs[n].length = ps; in ipath_map_phys_fmr()
393 struct ipath_fmr *fmr; in ipath_unmap_fmr() local
397 list_for_each_entry(fmr, fmr_list, ibfmr.list) { in ipath_unmap_fmr()
398 rkt = &to_idev(fmr->ibfmr.device)->lk_table; in ipath_unmap_fmr()
400 fmr->mr.user_base = 0; in ipath_unmap_fmr()
401 fmr->mr.iova = 0; in ipath_unmap_fmr()
402 fmr->mr.length = 0; in ipath_unmap_fmr()
416 struct ipath_fmr *fmr = to_ifmr(ibfmr); in ipath_dealloc_fmr() local
420 i = fmr->mr.mapsz; in ipath_dealloc_fmr()
422 kfree(fmr->mr.map[--i]); in ipath_dealloc_fmr()
423 kfree(fmr); in ipath_dealloc_fmr()