• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/infiniband/hw/ehca/

Lines Matching refs:shca

113 static u64 ehca_get_max_hwpage_size(struct ehca_shca *shca)
115 return 1UL << ilog2(shca->hca_cap_mr_pgsize);
162 struct ehca_shca *shca =
165 if (shca->maxmr) {
168 ehca_err(&shca->ib_device, "out of memory");
173 ret = ehca_reg_maxmr(shca, e_maxmr,
185 ehca_err(&shca->ib_device, "no internal max-MR exist!");
192 ehca_err(&shca->ib_device, "h_ret=%li pd=%p mr_access_flags=%x",
208 struct ehca_shca *shca =
259 ret = ehca_reg_maxmr(shca, e_mr, iova_start, mr_access_flags,
275 hw_pgsize = ehca_get_max_hwpage_size(shca);
288 ret = ehca_reg_mr(shca, e_mr, iova_start, size, mr_access_flags,
319 struct ehca_shca *shca =
390 while (!(hwpage_size & shca->hca_cap_mr_pgsize))
407 ret = ehca_reg_mr(shca, e_mr, (u64 *)virt, length, mr_access_flags,
453 struct ehca_shca *shca =
491 if (e_mr == shca->maxmr) {
494 "shca->maxmr=%p mr->lkey=%x",
495 mr, shca->maxmr, mr->lkey);
537 u64 hw_pgsize = ehca_get_max_hwpage_size(shca);
572 ret = ehca_rereg_mr(shca, e_mr, new_start, new_size, new_acl,
601 struct ehca_shca *shca =
617 h_ret = hipz_h_query_mr(shca->ipz_hca_handle, e_mr, &hipzout);
621 h_ret, mr, shca->ipz_hca_handle.handle,
648 struct ehca_shca *shca =
657 } else if (e_mr == shca->maxmr) {
660 "shca->maxmr=%p mr->lkey=%x",
661 mr, shca->maxmr, mr->lkey);
667 h_ret = hipz_h_free_resource_mr(shca->ipz_hca_handle, e_mr);
669 ehca_err(mr->device, "hipz_free_mr failed, h_ret=%lli shca=%p "
671 h_ret, shca, e_mr, shca->ipz_hca_handle.handle,
697 struct ehca_shca *shca =
707 h_ret = hipz_h_alloc_resource_mw(shca->ipz_hca_handle, e_mw,
711 "shca=%p hca_hndl=%llx mw=%p",
712 h_ret, shca, shca->ipz_hca_handle.handle, e_mw);
746 struct ehca_shca *shca =
750 h_ret = hipz_h_free_resource_mw(shca->ipz_hca_handle, e_mw);
752 ehca_err(mw->device, "hipz_free_mw failed, h_ret=%lli shca=%p "
754 h_ret, shca, mw, mw->rkey, shca->ipz_hca_handle.handle,
770 struct ehca_shca *shca =
809 if (!(hw_pgsize & shca->hca_cap_mr_pgsize)) {
830 ret = ehca_reg_mr(shca, e_fmr, NULL,
861 struct ehca_shca *shca =
902 ret = ehca_rereg_mr(shca, e_fmr, (u64 *)iova,
927 struct ehca_shca *shca = NULL;
935 prev_shca = shca;
936 shca = container_of(ib_fmr->device, struct ehca_shca,
939 if ((shca != prev_shca) && prev_shca) {
940 ehca_err(&shca->ib_device, "SHCA mismatch, shca=%p "
942 shca, prev_shca, e_fmr);
947 ehca_err(&shca->ib_device, "not a FMR, e_fmr=%p "
959 shca = container_of(ib_fmr->device, struct ehca_shca,
961 ret = ehca_unmap_one_fmr(shca, e_fmr);
964 ehca_err(&shca->ib_device, "unmap of one FMR failed, "
985 struct ehca_shca *shca =
996 h_ret = hipz_h_free_resource_mr(shca->ipz_hca_handle, e_fmr);
1000 h_ret, e_fmr, shca->ipz_hca_handle.handle,
1011 ehca_err(&shca->ib_device, "ret=%i fmr=%p", ret, fmr);
1017 static int ehca_reg_bmap_mr_rpages(struct ehca_shca *shca,
1021 int ehca_reg_mr(struct ehca_shca *shca,
1042 h_ret = hipz_h_alloc_resource_mr(shca->ipz_hca_handle, e_mr,
1046 ehca_err(&shca->ib_device, "hipz_alloc_mr failed, h_ret=%lli "
1047 "hca_hndl=%llx", h_ret, shca->ipz_hca_handle.handle);
1055 ret = ehca_reg_bmap_mr_rpages(shca, e_mr, pginfo);
1057 ret = ehca_reg_mr_rpages(shca, e_mr, pginfo);
1076 h_ret = hipz_h_free_resource_mr(shca->ipz_hca_handle, e_mr);
1078 ehca_err(&shca->ib_device, "h_ret=%lli shca=%p e_mr=%p "
1081 h_ret, shca, e_mr, iova_start, size, acl, e_pd,
1084 ehca_err(&shca->ib_device, "internal error in ehca_reg_mr, "
1089 ehca_err(&shca->ib_device, "ret=%i shca=%p e_mr=%p "
1092 ret, shca, e_mr, iova_start, size, acl, e_pd, pginfo,
1099 int ehca_reg_mr_rpages(struct ehca_shca *shca,
1115 ehca_err(&shca->ib_device, "kpage alloc failed");
1132 ehca_err(&shca->ib_device, "ehca_set_pagebuf "
1141 ehca_err(&shca->ib_device, "kpage=%p i=%x",
1150 shca->ipz_hca_handle, e_mr,
1160 ehca_err(&shca->ib_device, "last "
1164 shca->ipz_hca_handle.handle,
1172 ehca_err(&shca->ib_device, "hipz_reg_rpage_mr failed, "
1176 shca->ipz_hca_handle.handle,
1189 ehca_err(&shca->ib_device, "ret=%i shca=%p e_mr=%p pginfo=%p "
1190 "num_kpages=%llx num_hwpages=%llx", ret, shca, e_mr,
1197 inline int ehca_rereg_mr_rereg1(struct ehca_shca *shca,
1220 ehca_err(&shca->ib_device, "kpage alloc failed");
1228 ehca_err(&shca->ib_device, "set pagebuf failed, e_mr=%p "
1236 ehca_err(&shca->ib_device, "kpage=%p", kpage);
1240 h_ret = hipz_h_reregister_pmr(shca->ipz_hca_handle, e_mr,
1249 ehca_warn(&shca->ib_device, "hipz_h_reregister_pmr failed "
1254 ehca_err(&shca->ib_device, "PHYP changed iova_start in "
1279 ehca_err(&shca->ib_device, "ret=%i lkey=%x rkey=%x "
1288 int ehca_rereg_mr(struct ehca_shca *shca,
1307 ehca_dbg(&shca->ib_device, "Rereg3 case, "
1318 ehca_err(&shca->ib_device, "Rereg MR for max-MR! e_mr=%p",
1323 ret = ehca_rereg_mr_rereg1(shca, e_mr, iova_start, size,
1337 h_ret = hipz_h_free_resource_mr(shca->ipz_hca_handle, e_mr);
1339 ehca_err(&shca->ib_device, "hipz_free_mr failed, "
1342 h_ret, e_mr, shca->ipz_hca_handle.handle,
1360 ret = ehca_reg_mr(shca, e_mr, iova_start, size, acl,
1372 ehca_err(&shca->ib_device, "ret=%i shca=%p e_mr=%p "
1375 "rereg_3_hcall=%x", ret, shca, e_mr, iova_start, size,
1383 int ehca_unmap_one_fmr(struct ehca_shca *shca,
1401 h_ret = hipz_h_reregister_pmr(shca->ipz_hca_handle, e_fmr, 0,
1415 ehca_err(&shca->ib_device, "hipz_reregister_pmr failed "
1418 h_ret, e_fmr, shca->ipz_hca_handle.handle,
1425 h_ret = hipz_h_free_resource_mr(shca->ipz_hca_handle, e_fmr);
1427 ehca_err(&shca->ib_device, "hipz_free_mr failed, "
1430 h_ret, e_fmr, shca->ipz_hca_handle.handle,
1451 ret = ehca_reg_mr(shca, e_fmr, NULL,
1463 ehca_err(&shca->ib_device, "ret=%i tmp_lkey=%x tmp_rkey=%x "
1471 int ehca_reg_smr(struct ehca_shca *shca,
1488 h_ret = hipz_h_register_smr(shca->ipz_hca_handle, e_newmr, e_origmr,
1492 ehca_err(&shca->ib_device, "hipz_reg_smr failed, h_ret=%lli "
1493 "shca=%p e_origmr=%p e_newmr=%p iova_start=%p acl=%x "
1495 h_ret, shca, e_origmr, e_newmr, iova_start, acl, e_pd,
1496 shca->ipz_hca_handle.handle,
1516 ehca_err(&shca->ib_device, "ret=%i shca=%p e_origmr=%p "
1518 ret, shca, e_origmr, e_newmr, iova_start, acl, e_pd);
1535 struct ehca_shca *shca, struct ehca_mr *mr,
1545 ehca_err(&shca->ib_device, "reg_mr_section will probably fail:"
1559 h_ret = hipz_h_register_rpage_mr(shca->ipz_hca_handle, mr,
1564 ehca_err(&shca->ib_device, "register_rpage_mr failed");
1572 struct ehca_shca *shca, struct ehca_mr *mr,
1582 hret = ehca_reg_mr_section(top, dir, idx, kpage, shca, mr,
1590 static u64 ehca_reg_mr_dir_sections(int top, u64 *kpage, struct ehca_shca *shca,
1601 hret = ehca_reg_mr_sections(top, dir, kpage, shca, mr, pginfo);
1610 struct ehca_shca *shca,
1631 ehca_err(&shca->ib_device, "out of memory");
1644 hw_pgsize = ehca_get_max_hwpage_size(shca);
1656 ret = ehca_reg_mr(shca, e_mr, iova_start, size_maxmr, 0, e_pd,
1660 ehca_err(&shca->ib_device, "reg of internal max MR failed, "
1680 ehca_err(&shca->ib_device, "ret=%i shca=%p e_pd=%p e_maxmr=%p",
1681 ret, shca, e_pd, e_maxmr);
1687 int ehca_reg_maxmr(struct ehca_shca *shca,
1696 struct ehca_mr *e_origmr = shca->maxmr;
1703 h_ret = hipz_h_register_smr(shca->ipz_hca_handle, e_newmr, e_origmr,
1707 ehca_err(&shca->ib_device, "hipz_reg_smr failed, h_ret=%lli "
1709 h_ret, e_origmr, shca->ipz_hca_handle.handle,
1729 int ehca_dereg_internal_maxmr(struct ehca_shca *shca)
1735 if (!shca->maxmr) {
1736 ehca_err(&shca->ib_device, "bad call, shca=%p", shca);
1741 e_maxmr = shca->maxmr;
1743 shca->maxmr = NULL; /* remove internal max-MR indication from SHCA */
1747 ehca_err(&shca->ib_device, "dereg internal max-MR failed, "
1748 "ret=%i e_maxmr=%p shca=%p lkey=%x",
1749 ret, e_maxmr, shca, e_maxmr->ib.ib_mr.lkey);
1750 shca->maxmr = e_maxmr;
1758 ehca_err(&shca->ib_device, "ret=%i shca=%p shca->maxmr=%p",
1759 ret, shca, shca->maxmr);
2467 static int ehca_reg_bmap_mr_rpages(struct ehca_shca *shca,
2476 ehca_err(&shca->ib_device, "kpage alloc failed");
2482 hret = ehca_reg_mr_dir_sections(top, kpage, shca, e_mr, pginfo);
2492 ehca_err(&shca->ib_device, "ehca_reg_bmap_mr_rpages failed, "
2496 shca->ipz_hca_handle.handle,