Lines Matching refs:fmr
290 struct ipath_fmr *fmr;
296 fmr = kmalloc(sizeof *fmr + m * sizeof fmr->mr.map[0], GFP_KERNEL);
297 if (!fmr)
302 fmr->mr.map[i] = kmalloc(sizeof *fmr->mr.map[0],
304 if (!fmr->mr.map[i])
307 fmr->mr.mapsz = m;
310 * ib_alloc_fmr() will initialize fmr->ibfmr except for lkey &
313 if (!ipath_alloc_lkey(&to_idev(pd->device)->lk_table, &fmr->mr))
315 fmr->ibfmr.rkey = fmr->ibfmr.lkey = fmr->mr.lkey;
320 fmr->mr.pd = pd;
321 fmr->mr.user_base = 0;
322 fmr->mr.iova = 0;
323 fmr->mr.length = 0;
324 fmr->mr.offset = 0;
325 fmr->mr.access_flags = mr_access_flags;
326 fmr->mr.max_segs = fmr_attr->max_pages;
327 fmr->page_shift = fmr_attr->page_shift;
329 ret = &fmr->ibfmr;
334 kfree(fmr->mr.map[--i]);
335 kfree(fmr);
355 struct ipath_fmr *fmr = to_ifmr(ibfmr);
362 if (list_len > fmr->mr.max_segs) {
368 fmr->mr.user_base = iova;
369 fmr->mr.iova = iova;
370 ps = 1 << fmr->page_shift;
371 fmr->mr.length = list_len * ps;
374 ps = 1 << fmr->page_shift;
376 fmr->mr.map[m]->segs[n].vaddr = (void *) page_list[i];
377 fmr->mr.map[m]->segs[n].length = ps;
398 struct ipath_fmr *fmr;
402 list_for_each_entry(fmr, fmr_list, ibfmr.list) {
403 rkt = &to_idev(fmr->ibfmr.device)->lk_table;
405 fmr->mr.user_base = 0;
406 fmr->mr.iova = 0;
407 fmr->mr.length = 0;
421 struct ipath_fmr *fmr = to_ifmr(ibfmr);
425 i = fmr->mr.mapsz;
427 kfree(fmr->mr.map[--i]);
428 kfree(fmr);