• Home
  • Raw
  • Download

Lines Matching refs:e_mr

171 	struct ehca_mr *e_mr;  in ehca_reg_phys_mr()  local
213 e_mr = ehca_mr_new(); in ehca_reg_phys_mr()
214 if (!e_mr) { in ehca_reg_phys_mr()
222 e_mr->flags |= EHCA_MR_FLAG_MAXMR; in ehca_reg_phys_mr()
223 ret = ehca_reg_maxmr(shca, e_mr, iova_start, mr_access_flags, in ehca_reg_phys_mr()
224 e_pd, &e_mr->ib.ib_mr.lkey, in ehca_reg_phys_mr()
225 &e_mr->ib.ib_mr.rkey); in ehca_reg_phys_mr()
252 ret = ehca_reg_mr(shca, e_mr, iova_start, size, mr_access_flags, in ehca_reg_phys_mr()
253 e_pd, &pginfo, &e_mr->ib.ib_mr.lkey, in ehca_reg_phys_mr()
254 &e_mr->ib.ib_mr.rkey); in ehca_reg_phys_mr()
262 return &e_mr->ib.ib_mr; in ehca_reg_phys_mr()
265 ehca_mr_delete(e_mr); in ehca_reg_phys_mr()
282 struct ehca_mr *e_mr; in ehca_reg_user_mr() local
318 e_mr = ehca_mr_new(); in ehca_reg_user_mr()
319 if (!e_mr) { in ehca_reg_user_mr()
325 e_mr->umem = ib_umem_get(pd->uobject->context, start, length, in ehca_reg_user_mr()
327 if (IS_ERR(e_mr->umem)) { in ehca_reg_user_mr()
328 ib_mr = (void *)e_mr->umem; in ehca_reg_user_mr()
332 if (e_mr->umem->page_size != PAGE_SIZE) { in ehca_reg_user_mr()
334 "e_mr->umem->page_size=%x", e_mr->umem->page_size); in ehca_reg_user_mr()
343 if (e_mr->umem->hugetlb) { in ehca_reg_user_mr()
365 pginfo.u.usr.region = e_mr->umem; in ehca_reg_user_mr()
366 pginfo.next_hwpage = e_mr->umem->offset / hwpage_size; in ehca_reg_user_mr()
368 (&e_mr->umem->chunk_list), in ehca_reg_user_mr()
371 ret = ehca_reg_mr(shca, e_mr, (u64 *)virt, length, mr_access_flags, in ehca_reg_user_mr()
372 e_pd, &pginfo, &e_mr->ib.ib_mr.lkey, in ehca_reg_user_mr()
373 &e_mr->ib.ib_mr.rkey); in ehca_reg_user_mr()
392 return &e_mr->ib.ib_mr; in ehca_reg_user_mr()
395 ib_umem_release(e_mr->umem); in ehca_reg_user_mr()
397 ehca_mr_delete(e_mr); in ehca_reg_user_mr()
419 struct ehca_mr *e_mr = container_of(mr, struct ehca_mr, ib.ib_mr); in ehca_rereg_phys_mr() local
455 if (e_mr == shca->maxmr) { in ehca_rereg_phys_mr()
464 if (e_mr->flags & EHCA_MR_FLAG_FMR) { in ehca_rereg_phys_mr()
466 "flags=%x", mr, e_mr->flags); in ehca_rereg_phys_mr()
494 spin_lock_irqsave(&e_mr->mrlock, sl_flags); in ehca_rereg_phys_mr()
495 new_start = e_mr->start; in ehca_rereg_phys_mr()
496 new_size = e_mr->size; in ehca_rereg_phys_mr()
497 new_acl = e_mr->acl; in ehca_rereg_phys_mr()
536 ret = ehca_rereg_mr(shca, e_mr, new_start, new_size, new_acl, in ehca_rereg_phys_mr()
548 spin_unlock_irqrestore(&e_mr->mrlock, sl_flags); in ehca_rereg_phys_mr()
567 struct ehca_mr *e_mr = container_of(mr, struct ehca_mr, ib.ib_mr); in ehca_query_mr() local
571 if ((e_mr->flags & EHCA_MR_FLAG_FMR)) { in ehca_query_mr()
573 "e_mr->flags=%x", mr, e_mr, e_mr->flags); in ehca_query_mr()
579 spin_lock_irqsave(&e_mr->mrlock, sl_flags); in ehca_query_mr()
581 h_ret = hipz_h_query_mr(shca->ipz_hca_handle, e_mr, &hipzout); in ehca_query_mr()
586 e_mr->ipz_mr_handle.handle, mr->lkey); in ehca_query_mr()
598 spin_unlock_irqrestore(&e_mr->mrlock, sl_flags); in ehca_query_mr()
614 struct ehca_mr *e_mr = container_of(mr, struct ehca_mr, ib.ib_mr); in ehca_dereg_mr() local
616 if ((e_mr->flags & EHCA_MR_FLAG_FMR)) { in ehca_dereg_mr()
618 "e_mr->flags=%x", mr, e_mr, e_mr->flags); in ehca_dereg_mr()
621 } else if (e_mr == shca->maxmr) { in ehca_dereg_mr()
631 h_ret = hipz_h_free_resource_mr(shca->ipz_hca_handle, e_mr); in ehca_dereg_mr()
635 h_ret, shca, e_mr, shca->ipz_hca_handle.handle, in ehca_dereg_mr()
636 e_mr->ipz_mr_handle.handle, mr->lkey); in ehca_dereg_mr()
641 if (e_mr->umem) in ehca_dereg_mr()
642 ib_umem_release(e_mr->umem); in ehca_dereg_mr()
645 ehca_mr_delete(e_mr); in ehca_dereg_mr()
987 struct ehca_mr *e_mr, in ehca_reg_mr() argument
1006 h_ret = hipz_h_alloc_resource_mr(shca->ipz_hca_handle, e_mr, in ehca_reg_mr()
1016 e_mr->ipz_mr_handle = hipzout.handle; in ehca_reg_mr()
1018 ret = ehca_reg_mr_rpages(shca, e_mr, pginfo); in ehca_reg_mr()
1023 e_mr->num_kpages = pginfo->num_kpages; in ehca_reg_mr()
1024 e_mr->num_hwpages = pginfo->num_hwpages; in ehca_reg_mr()
1025 e_mr->hwpage_size = pginfo->hwpage_size; in ehca_reg_mr()
1026 e_mr->start = iova_start; in ehca_reg_mr()
1027 e_mr->size = size; in ehca_reg_mr()
1028 e_mr->acl = acl; in ehca_reg_mr()
1034 h_ret = hipz_h_free_resource_mr(shca->ipz_hca_handle, e_mr); in ehca_reg_mr()
1039 h_ret, shca, e_mr, iova_start, size, acl, e_pd, in ehca_reg_mr()
1050 ret, shca, e_mr, iova_start, size, acl, e_pd, pginfo, in ehca_reg_mr()
1058 struct ehca_mr *e_mr, in ehca_reg_mr_rpages() argument
1108 shca->ipz_hca_handle, e_mr, in ehca_reg_mr_rpages()
1121 " lkey=%x", h_ret, e_mr, i, in ehca_reg_mr_rpages()
1123 e_mr->ipz_mr_handle.handle, in ehca_reg_mr_rpages()
1124 e_mr->ib.ib_mr.lkey); in ehca_reg_mr_rpages()
1132 "mr_hndl=%llx", h_ret, e_mr, i, in ehca_reg_mr_rpages()
1133 e_mr->ib.ib_mr.lkey, in ehca_reg_mr_rpages()
1135 e_mr->ipz_mr_handle.handle); in ehca_reg_mr_rpages()
1148 "num_kpages=%llx num_hwpages=%llx", ret, shca, e_mr, in ehca_reg_mr_rpages()
1156 struct ehca_mr *e_mr, in ehca_rereg_mr_rereg1() argument
1188 "kpage=%p", e_mr, pginfo, pginfo->type, in ehca_rereg_mr_rereg1()
1198 h_ret = hipz_h_reregister_pmr(shca->ipz_hca_handle, e_mr, in ehca_rereg_mr_rereg1()
1208 "(Rereg1), h_ret=%lli e_mr=%p", h_ret, e_mr); in ehca_rereg_mr_rereg1()
1215 hipzout.vaddr, e_mr, e_mr->ipz_mr_handle.handle, in ehca_rereg_mr_rereg1()
1216 e_mr->ib.ib_mr.lkey, hipzout.lkey); in ehca_rereg_mr_rereg1()
1223 e_mr->num_kpages = pginfo->num_kpages; in ehca_rereg_mr_rereg1()
1224 e_mr->num_hwpages = pginfo->num_hwpages; in ehca_rereg_mr_rereg1()
1225 e_mr->hwpage_size = pginfo->hwpage_size; in ehca_rereg_mr_rereg1()
1226 e_mr->start = iova_start; in ehca_rereg_mr_rereg1()
1227 e_mr->size = size; in ehca_rereg_mr_rereg1()
1228 e_mr->acl = acl; in ehca_rereg_mr_rereg1()
1247 struct ehca_mr *e_mr, in ehca_rereg_mr() argument
1263 (e_mr->num_hwpages > MAX_RPAGES) || in ehca_rereg_mr()
1264 (pginfo->num_hwpages > e_mr->num_hwpages)) { in ehca_rereg_mr()
1267 pginfo->num_hwpages, e_mr->num_hwpages); in ehca_rereg_mr()
1272 if (e_mr->flags & EHCA_MR_FLAG_MAXMR) { /* check for max-MR */ in ehca_rereg_mr()
1275 e_mr->flags &= ~EHCA_MR_FLAG_MAXMR; in ehca_rereg_mr()
1277 e_mr); in ehca_rereg_mr()
1281 ret = ehca_rereg_mr_rereg1(shca, e_mr, iova_start, size, in ehca_rereg_mr()
1295 h_ret = hipz_h_free_resource_mr(shca->ipz_hca_handle, e_mr); in ehca_rereg_mr()
1300 h_ret, e_mr, shca->ipz_hca_handle.handle, in ehca_rereg_mr()
1301 e_mr->ipz_mr_handle.handle, in ehca_rereg_mr()
1302 e_mr->ib.ib_mr.lkey); in ehca_rereg_mr()
1307 save_mr = *e_mr; in ehca_rereg_mr()
1308 ehca_mr_deletenew(e_mr); in ehca_rereg_mr()
1311 e_mr->flags = save_mr.flags; in ehca_rereg_mr()
1312 e_mr->hwpage_size = save_mr.hwpage_size; in ehca_rereg_mr()
1313 e_mr->fmr_page_size = save_mr.fmr_page_size; in ehca_rereg_mr()
1314 e_mr->fmr_max_pages = save_mr.fmr_max_pages; in ehca_rereg_mr()
1315 e_mr->fmr_max_maps = save_mr.fmr_max_maps; in ehca_rereg_mr()
1316 e_mr->fmr_map_cnt = save_mr.fmr_map_cnt; in ehca_rereg_mr()
1318 ret = ehca_reg_mr(shca, e_mr, iova_start, size, acl, in ehca_rereg_mr()
1321 u32 offset = (u64)(&e_mr->flags) - (u64)e_mr; in ehca_rereg_mr()
1322 memcpy(&e_mr->flags, &(save_mr.flags), in ehca_rereg_mr()
1333 "rereg_3_hcall=%x", ret, shca, e_mr, iova_start, size, in ehca_rereg_mr()
1489 struct ehca_mr *e_mr; in ehca_reg_internal_maxmr() local
1498 e_mr = ehca_mr_new(); in ehca_reg_internal_maxmr()
1499 if (!e_mr) { in ehca_reg_internal_maxmr()
1504 e_mr->flags |= EHCA_MR_FLAG_MAXMR; in ehca_reg_internal_maxmr()
1525 ret = ehca_reg_mr(shca, e_mr, iova_start, size_maxmr, 0, e_pd, in ehca_reg_internal_maxmr()
1526 &pginfo, &e_mr->ib.ib_mr.lkey, in ehca_reg_internal_maxmr()
1527 &e_mr->ib.ib_mr.rkey); in ehca_reg_internal_maxmr()
1531 "num_hwpages=%x", e_mr, iova_start, size_maxmr, in ehca_reg_internal_maxmr()
1537 e_mr->ib.ib_mr.device = e_pd->ib_pd.device; in ehca_reg_internal_maxmr()
1538 e_mr->ib.ib_mr.pd = &e_pd->ib_pd; in ehca_reg_internal_maxmr()
1539 e_mr->ib.ib_mr.uobject = NULL; in ehca_reg_internal_maxmr()
1541 atomic_set(&(e_mr->ib.ib_mr.usecnt), 0); in ehca_reg_internal_maxmr()
1542 *e_maxmr = e_mr; in ehca_reg_internal_maxmr()
1546 ehca_mr_delete(e_mr); in ehca_reg_internal_maxmr()