aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/ehca/ehca_mrmw.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/infiniband/hw/ehca/ehca_mrmw.c')
-rw-r--r--drivers/infiniband/hw/ehca/ehca_mrmw.c102
1 files changed, 51 insertions, 51 deletions
diff --git a/drivers/infiniband/hw/ehca/ehca_mrmw.c b/drivers/infiniband/hw/ehca/ehca_mrmw.c
index d97eda3e1da0..da88738265ed 100644
--- a/drivers/infiniband/hw/ehca/ehca_mrmw.c
+++ b/drivers/infiniband/hw/ehca/ehca_mrmw.c
@@ -51,6 +51,7 @@
51 51
52#define NUM_CHUNKS(length, chunk_size) \ 52#define NUM_CHUNKS(length, chunk_size) \
53 (((length) + (chunk_size - 1)) / (chunk_size)) 53 (((length) + (chunk_size - 1)) / (chunk_size))
54
54/* max number of rpages (per hcall register_rpages) */ 55/* max number of rpages (per hcall register_rpages) */
55#define MAX_RPAGES 512 56#define MAX_RPAGES 512
56 57
@@ -64,6 +65,11 @@ enum ehca_mr_pgsize {
64 EHCA_MR_PGSIZE16M = 0x1000000L 65 EHCA_MR_PGSIZE16M = 0x1000000L
65}; 66};
66 67
68#define EHCA_MR_PGSHIFT4K 12
69#define EHCA_MR_PGSHIFT64K 16
70#define EHCA_MR_PGSHIFT1M 20
71#define EHCA_MR_PGSHIFT16M 24
72
67static u32 ehca_encode_hwpage_size(u32 pgsize) 73static u32 ehca_encode_hwpage_size(u32 pgsize)
68{ 74{
69 u32 idx = 0; 75 u32 idx = 0;
@@ -159,7 +165,7 @@ struct ib_mr *ehca_get_dma_mr(struct ib_pd *pd, int mr_access_flags)
159 165
160get_dma_mr_exit0: 166get_dma_mr_exit0:
161 if (IS_ERR(ib_mr)) 167 if (IS_ERR(ib_mr))
162 ehca_err(&shca->ib_device, "rc=%lx pd=%p mr_access_flags=%x ", 168 ehca_err(&shca->ib_device, "h_ret=%li pd=%p mr_access_flags=%x",
163 PTR_ERR(ib_mr), pd, mr_access_flags); 169 PTR_ERR(ib_mr), pd, mr_access_flags);
164 return ib_mr; 170 return ib_mr;
165} /* end ehca_get_dma_mr() */ 171} /* end ehca_get_dma_mr() */
@@ -271,7 +277,7 @@ reg_phys_mr_exit1:
271 ehca_mr_delete(e_mr); 277 ehca_mr_delete(e_mr);
272reg_phys_mr_exit0: 278reg_phys_mr_exit0:
273 if (IS_ERR(ib_mr)) 279 if (IS_ERR(ib_mr))
274 ehca_err(pd->device, "rc=%lx pd=%p phys_buf_array=%p " 280 ehca_err(pd->device, "h_ret=%li pd=%p phys_buf_array=%p "
275 "num_phys_buf=%x mr_access_flags=%x iova_start=%p", 281 "num_phys_buf=%x mr_access_flags=%x iova_start=%p",
276 PTR_ERR(ib_mr), pd, phys_buf_array, 282 PTR_ERR(ib_mr), pd, phys_buf_array,
277 num_phys_buf, mr_access_flags, iova_start); 283 num_phys_buf, mr_access_flags, iova_start);
@@ -347,17 +353,16 @@ struct ib_mr *ehca_reg_user_mr(struct ib_pd *pd, u64 start, u64 length,
347 /* select proper hw_pgsize */ 353 /* select proper hw_pgsize */
348 if (ehca_mr_largepage && 354 if (ehca_mr_largepage &&
349 (shca->hca_cap_mr_pgsize & HCA_CAP_MR_PGSIZE_16M)) { 355 (shca->hca_cap_mr_pgsize & HCA_CAP_MR_PGSIZE_16M)) {
350 if (length <= EHCA_MR_PGSIZE4K 356 int page_shift = PAGE_SHIFT;
351 && PAGE_SIZE == EHCA_MR_PGSIZE4K) 357 if (e_mr->umem->hugetlb) {
352 hwpage_size = EHCA_MR_PGSIZE4K; 358 /* determine page_shift, clamp between 4K and 16M */
353 else if (length <= EHCA_MR_PGSIZE64K) 359 page_shift = (fls64(length - 1) + 3) & ~3;
354 hwpage_size = EHCA_MR_PGSIZE64K; 360 page_shift = min(max(page_shift, EHCA_MR_PGSHIFT4K),
355 else if (length <= EHCA_MR_PGSIZE1M) 361 EHCA_MR_PGSHIFT16M);
356 hwpage_size = EHCA_MR_PGSIZE1M; 362 }
357 else 363 hwpage_size = 1UL << page_shift;
358 hwpage_size = EHCA_MR_PGSIZE16M;
359 } else 364 } else
360 hwpage_size = EHCA_MR_PGSIZE4K; 365 hwpage_size = EHCA_MR_PGSIZE4K; /* ehca1 only supports 4k */
361 ehca_dbg(pd->device, "hwpage_size=%lx", hwpage_size); 366 ehca_dbg(pd->device, "hwpage_size=%lx", hwpage_size);
362 367
363reg_user_mr_fallback: 368reg_user_mr_fallback:
@@ -403,8 +408,7 @@ reg_user_mr_exit1:
403 ehca_mr_delete(e_mr); 408 ehca_mr_delete(e_mr);
404reg_user_mr_exit0: 409reg_user_mr_exit0:
405 if (IS_ERR(ib_mr)) 410 if (IS_ERR(ib_mr))
406 ehca_err(pd->device, "rc=%lx pd=%p mr_access_flags=%x" 411 ehca_err(pd->device, "rc=%li pd=%p mr_access_flags=%x udata=%p",
407 " udata=%p",
408 PTR_ERR(ib_mr), pd, mr_access_flags, udata); 412 PTR_ERR(ib_mr), pd, mr_access_flags, udata);
409 return ib_mr; 413 return ib_mr;
410} /* end ehca_reg_user_mr() */ 414} /* end ehca_reg_user_mr() */
@@ -565,7 +569,7 @@ rereg_phys_mr_exit1:
565 spin_unlock_irqrestore(&e_mr->mrlock, sl_flags); 569 spin_unlock_irqrestore(&e_mr->mrlock, sl_flags);
566rereg_phys_mr_exit0: 570rereg_phys_mr_exit0:
567 if (ret) 571 if (ret)
568 ehca_err(mr->device, "ret=%x mr=%p mr_rereg_mask=%x pd=%p " 572 ehca_err(mr->device, "ret=%i mr=%p mr_rereg_mask=%x pd=%p "
569 "phys_buf_array=%p num_phys_buf=%x mr_access_flags=%x " 573 "phys_buf_array=%p num_phys_buf=%x mr_access_flags=%x "
570 "iova_start=%p", 574 "iova_start=%p",
571 ret, mr, mr_rereg_mask, pd, phys_buf_array, 575 ret, mr, mr_rereg_mask, pd, phys_buf_array,
@@ -607,7 +611,7 @@ int ehca_query_mr(struct ib_mr *mr, struct ib_mr_attr *mr_attr)
607 611
608 h_ret = hipz_h_query_mr(shca->ipz_hca_handle, e_mr, &hipzout); 612 h_ret = hipz_h_query_mr(shca->ipz_hca_handle, e_mr, &hipzout);
609 if (h_ret != H_SUCCESS) { 613 if (h_ret != H_SUCCESS) {
610 ehca_err(mr->device, "hipz_mr_query failed, h_ret=%lx mr=%p " 614 ehca_err(mr->device, "hipz_mr_query failed, h_ret=%li mr=%p "
611 "hca_hndl=%lx mr_hndl=%lx lkey=%x", 615 "hca_hndl=%lx mr_hndl=%lx lkey=%x",
612 h_ret, mr, shca->ipz_hca_handle.handle, 616 h_ret, mr, shca->ipz_hca_handle.handle,
613 e_mr->ipz_mr_handle.handle, mr->lkey); 617 e_mr->ipz_mr_handle.handle, mr->lkey);
@@ -625,7 +629,7 @@ query_mr_exit1:
625 spin_unlock_irqrestore(&e_mr->mrlock, sl_flags); 629 spin_unlock_irqrestore(&e_mr->mrlock, sl_flags);
626query_mr_exit0: 630query_mr_exit0:
627 if (ret) 631 if (ret)
628 ehca_err(mr->device, "ret=%x mr=%p mr_attr=%p", 632 ehca_err(mr->device, "ret=%i mr=%p mr_attr=%p",
629 ret, mr, mr_attr); 633 ret, mr, mr_attr);
630 return ret; 634 return ret;
631} /* end ehca_query_mr() */ 635} /* end ehca_query_mr() */
@@ -667,7 +671,7 @@ int ehca_dereg_mr(struct ib_mr *mr)
667 /* TODO: BUSY: MR still has bound window(s) */ 671 /* TODO: BUSY: MR still has bound window(s) */
668 h_ret = hipz_h_free_resource_mr(shca->ipz_hca_handle, e_mr); 672 h_ret = hipz_h_free_resource_mr(shca->ipz_hca_handle, e_mr);
669 if (h_ret != H_SUCCESS) { 673 if (h_ret != H_SUCCESS) {
670 ehca_err(mr->device, "hipz_free_mr failed, h_ret=%lx shca=%p " 674 ehca_err(mr->device, "hipz_free_mr failed, h_ret=%li shca=%p "
671 "e_mr=%p hca_hndl=%lx mr_hndl=%lx mr->lkey=%x", 675 "e_mr=%p hca_hndl=%lx mr_hndl=%lx mr->lkey=%x",
672 h_ret, shca, e_mr, shca->ipz_hca_handle.handle, 676 h_ret, shca, e_mr, shca->ipz_hca_handle.handle,
673 e_mr->ipz_mr_handle.handle, mr->lkey); 677 e_mr->ipz_mr_handle.handle, mr->lkey);
@@ -683,7 +687,7 @@ int ehca_dereg_mr(struct ib_mr *mr)
683 687
684dereg_mr_exit0: 688dereg_mr_exit0:
685 if (ret) 689 if (ret)
686 ehca_err(mr->device, "ret=%x mr=%p", ret, mr); 690 ehca_err(mr->device, "ret=%i mr=%p", ret, mr);
687 return ret; 691 return ret;
688} /* end ehca_dereg_mr() */ 692} /* end ehca_dereg_mr() */
689 693
@@ -708,7 +712,7 @@ struct ib_mw *ehca_alloc_mw(struct ib_pd *pd)
708 h_ret = hipz_h_alloc_resource_mw(shca->ipz_hca_handle, e_mw, 712 h_ret = hipz_h_alloc_resource_mw(shca->ipz_hca_handle, e_mw,
709 e_pd->fw_pd, &hipzout); 713 e_pd->fw_pd, &hipzout);
710 if (h_ret != H_SUCCESS) { 714 if (h_ret != H_SUCCESS) {
711 ehca_err(pd->device, "hipz_mw_allocate failed, h_ret=%lx " 715 ehca_err(pd->device, "hipz_mw_allocate failed, h_ret=%li "
712 "shca=%p hca_hndl=%lx mw=%p", 716 "shca=%p hca_hndl=%lx mw=%p",
713 h_ret, shca, shca->ipz_hca_handle.handle, e_mw); 717 h_ret, shca, shca->ipz_hca_handle.handle, e_mw);
714 ib_mw = ERR_PTR(ehca2ib_return_code(h_ret)); 718 ib_mw = ERR_PTR(ehca2ib_return_code(h_ret));
@@ -723,7 +727,7 @@ alloc_mw_exit1:
723 ehca_mw_delete(e_mw); 727 ehca_mw_delete(e_mw);
724alloc_mw_exit0: 728alloc_mw_exit0:
725 if (IS_ERR(ib_mw)) 729 if (IS_ERR(ib_mw))
726 ehca_err(pd->device, "rc=%lx pd=%p", PTR_ERR(ib_mw), pd); 730 ehca_err(pd->device, "h_ret=%li pd=%p", PTR_ERR(ib_mw), pd);
727 return ib_mw; 731 return ib_mw;
728} /* end ehca_alloc_mw() */ 732} /* end ehca_alloc_mw() */
729 733
@@ -750,7 +754,7 @@ int ehca_dealloc_mw(struct ib_mw *mw)
750 754
751 h_ret = hipz_h_free_resource_mw(shca->ipz_hca_handle, e_mw); 755 h_ret = hipz_h_free_resource_mw(shca->ipz_hca_handle, e_mw);
752 if (h_ret != H_SUCCESS) { 756 if (h_ret != H_SUCCESS) {
753 ehca_err(mw->device, "hipz_free_mw failed, h_ret=%lx shca=%p " 757 ehca_err(mw->device, "hipz_free_mw failed, h_ret=%li shca=%p "
754 "mw=%p rkey=%x hca_hndl=%lx mw_hndl=%lx", 758 "mw=%p rkey=%x hca_hndl=%lx mw_hndl=%lx",
755 h_ret, shca, mw, mw->rkey, shca->ipz_hca_handle.handle, 759 h_ret, shca, mw, mw->rkey, shca->ipz_hca_handle.handle,
756 e_mw->ipz_mw_handle.handle); 760 e_mw->ipz_mw_handle.handle);
@@ -846,10 +850,6 @@ struct ib_fmr *ehca_alloc_fmr(struct ib_pd *pd,
846alloc_fmr_exit1: 850alloc_fmr_exit1:
847 ehca_mr_delete(e_fmr); 851 ehca_mr_delete(e_fmr);
848alloc_fmr_exit0: 852alloc_fmr_exit0:
849 if (IS_ERR(ib_fmr))
850 ehca_err(pd->device, "rc=%lx pd=%p mr_access_flags=%x "
851 "fmr_attr=%p", PTR_ERR(ib_fmr), pd,
852 mr_access_flags, fmr_attr);
853 return ib_fmr; 853 return ib_fmr;
854} /* end ehca_alloc_fmr() */ 854} /* end ehca_alloc_fmr() */
855 855
@@ -916,7 +916,7 @@ int ehca_map_phys_fmr(struct ib_fmr *fmr,
916 916
917map_phys_fmr_exit0: 917map_phys_fmr_exit0:
918 if (ret) 918 if (ret)
919 ehca_err(fmr->device, "ret=%x fmr=%p page_list=%p list_len=%x " 919 ehca_err(fmr->device, "ret=%i fmr=%p page_list=%p list_len=%x "
920 "iova=%lx", ret, fmr, page_list, list_len, iova); 920 "iova=%lx", ret, fmr, page_list, list_len, iova);
921 return ret; 921 return ret;
922} /* end ehca_map_phys_fmr() */ 922} /* end ehca_map_phys_fmr() */
@@ -979,7 +979,7 @@ int ehca_unmap_fmr(struct list_head *fmr_list)
979 979
980unmap_fmr_exit0: 980unmap_fmr_exit0:
981 if (ret) 981 if (ret)
982 ehca_gen_err("ret=%x fmr_list=%p num_fmr=%x unmap_fmr_cnt=%x", 982 ehca_gen_err("ret=%i fmr_list=%p num_fmr=%x unmap_fmr_cnt=%x",
983 ret, fmr_list, num_fmr, unmap_fmr_cnt); 983 ret, fmr_list, num_fmr, unmap_fmr_cnt);
984 return ret; 984 return ret;
985} /* end ehca_unmap_fmr() */ 985} /* end ehca_unmap_fmr() */
@@ -1003,7 +1003,7 @@ int ehca_dealloc_fmr(struct ib_fmr *fmr)
1003 1003
1004 h_ret = hipz_h_free_resource_mr(shca->ipz_hca_handle, e_fmr); 1004 h_ret = hipz_h_free_resource_mr(shca->ipz_hca_handle, e_fmr);
1005 if (h_ret != H_SUCCESS) { 1005 if (h_ret != H_SUCCESS) {
1006 ehca_err(fmr->device, "hipz_free_mr failed, h_ret=%lx e_fmr=%p " 1006 ehca_err(fmr->device, "hipz_free_mr failed, h_ret=%li e_fmr=%p "
1007 "hca_hndl=%lx fmr_hndl=%lx fmr->lkey=%x", 1007 "hca_hndl=%lx fmr_hndl=%lx fmr->lkey=%x",
1008 h_ret, e_fmr, shca->ipz_hca_handle.handle, 1008 h_ret, e_fmr, shca->ipz_hca_handle.handle,
1009 e_fmr->ipz_mr_handle.handle, fmr->lkey); 1009 e_fmr->ipz_mr_handle.handle, fmr->lkey);
@@ -1016,7 +1016,7 @@ int ehca_dealloc_fmr(struct ib_fmr *fmr)
1016 1016
1017free_fmr_exit0: 1017free_fmr_exit0:
1018 if (ret) 1018 if (ret)
1019 ehca_err(&shca->ib_device, "ret=%x fmr=%p", ret, fmr); 1019 ehca_err(&shca->ib_device, "ret=%i fmr=%p", ret, fmr);
1020 return ret; 1020 return ret;
1021} /* end ehca_dealloc_fmr() */ 1021} /* end ehca_dealloc_fmr() */
1022 1022
@@ -1046,7 +1046,7 @@ int ehca_reg_mr(struct ehca_shca *shca,
1046 (u64)iova_start, size, hipz_acl, 1046 (u64)iova_start, size, hipz_acl,
1047 e_pd->fw_pd, &hipzout); 1047 e_pd->fw_pd, &hipzout);
1048 if (h_ret != H_SUCCESS) { 1048 if (h_ret != H_SUCCESS) {
1049 ehca_err(&shca->ib_device, "hipz_alloc_mr failed, h_ret=%lx " 1049 ehca_err(&shca->ib_device, "hipz_alloc_mr failed, h_ret=%li "
1050 "hca_hndl=%lx", h_ret, shca->ipz_hca_handle.handle); 1050 "hca_hndl=%lx", h_ret, shca->ipz_hca_handle.handle);
1051 ret = ehca2ib_return_code(h_ret); 1051 ret = ehca2ib_return_code(h_ret);
1052 goto ehca_reg_mr_exit0; 1052 goto ehca_reg_mr_exit0;
@@ -1072,9 +1072,9 @@ int ehca_reg_mr(struct ehca_shca *shca,
1072ehca_reg_mr_exit1: 1072ehca_reg_mr_exit1:
1073 h_ret = hipz_h_free_resource_mr(shca->ipz_hca_handle, e_mr); 1073 h_ret = hipz_h_free_resource_mr(shca->ipz_hca_handle, e_mr);
1074 if (h_ret != H_SUCCESS) { 1074 if (h_ret != H_SUCCESS) {
1075 ehca_err(&shca->ib_device, "h_ret=%lx shca=%p e_mr=%p " 1075 ehca_err(&shca->ib_device, "h_ret=%li shca=%p e_mr=%p "
1076 "iova_start=%p size=%lx acl=%x e_pd=%p lkey=%x " 1076 "iova_start=%p size=%lx acl=%x e_pd=%p lkey=%x "
1077 "pginfo=%p num_kpages=%lx num_hwpages=%lx ret=%x", 1077 "pginfo=%p num_kpages=%lx num_hwpages=%lx ret=%i",
1078 h_ret, shca, e_mr, iova_start, size, acl, e_pd, 1078 h_ret, shca, e_mr, iova_start, size, acl, e_pd,
1079 hipzout.lkey, pginfo, pginfo->num_kpages, 1079 hipzout.lkey, pginfo, pginfo->num_kpages,
1080 pginfo->num_hwpages, ret); 1080 pginfo->num_hwpages, ret);
@@ -1083,7 +1083,7 @@ ehca_reg_mr_exit1:
1083 } 1083 }
1084ehca_reg_mr_exit0: 1084ehca_reg_mr_exit0:
1085 if (ret) 1085 if (ret)
1086 ehca_err(&shca->ib_device, "ret=%x shca=%p e_mr=%p " 1086 ehca_err(&shca->ib_device, "ret=%i shca=%p e_mr=%p "
1087 "iova_start=%p size=%lx acl=%x e_pd=%p pginfo=%p " 1087 "iova_start=%p size=%lx acl=%x e_pd=%p pginfo=%p "
1088 "num_kpages=%lx num_hwpages=%lx", 1088 "num_kpages=%lx num_hwpages=%lx",
1089 ret, shca, e_mr, iova_start, size, acl, e_pd, pginfo, 1089 ret, shca, e_mr, iova_start, size, acl, e_pd, pginfo,
@@ -1127,7 +1127,7 @@ int ehca_reg_mr_rpages(struct ehca_shca *shca,
1127 ret = ehca_set_pagebuf(pginfo, rnum, kpage); 1127 ret = ehca_set_pagebuf(pginfo, rnum, kpage);
1128 if (ret) { 1128 if (ret) {
1129 ehca_err(&shca->ib_device, "ehca_set_pagebuf " 1129 ehca_err(&shca->ib_device, "ehca_set_pagebuf "
1130 "bad rc, ret=%x rnum=%x kpage=%p", 1130 "bad rc, ret=%i rnum=%x kpage=%p",
1131 ret, rnum, kpage); 1131 ret, rnum, kpage);
1132 goto ehca_reg_mr_rpages_exit1; 1132 goto ehca_reg_mr_rpages_exit1;
1133 } 1133 }
@@ -1155,7 +1155,7 @@ int ehca_reg_mr_rpages(struct ehca_shca *shca,
1155 */ 1155 */
1156 if (h_ret != H_SUCCESS) { 1156 if (h_ret != H_SUCCESS) {
1157 ehca_err(&shca->ib_device, "last " 1157 ehca_err(&shca->ib_device, "last "
1158 "hipz_reg_rpage_mr failed, h_ret=%lx " 1158 "hipz_reg_rpage_mr failed, h_ret=%li "
1159 "e_mr=%p i=%x hca_hndl=%lx mr_hndl=%lx" 1159 "e_mr=%p i=%x hca_hndl=%lx mr_hndl=%lx"
1160 " lkey=%x", h_ret, e_mr, i, 1160 " lkey=%x", h_ret, e_mr, i,
1161 shca->ipz_hca_handle.handle, 1161 shca->ipz_hca_handle.handle,
@@ -1167,7 +1167,7 @@ int ehca_reg_mr_rpages(struct ehca_shca *shca,
1167 ret = 0; 1167 ret = 0;
1168 } else if (h_ret != H_PAGE_REGISTERED) { 1168 } else if (h_ret != H_PAGE_REGISTERED) {
1169 ehca_err(&shca->ib_device, "hipz_reg_rpage_mr failed, " 1169 ehca_err(&shca->ib_device, "hipz_reg_rpage_mr failed, "
1170 "h_ret=%lx e_mr=%p i=%x lkey=%x hca_hndl=%lx " 1170 "h_ret=%li e_mr=%p i=%x lkey=%x hca_hndl=%lx "
1171 "mr_hndl=%lx", h_ret, e_mr, i, 1171 "mr_hndl=%lx", h_ret, e_mr, i,
1172 e_mr->ib.ib_mr.lkey, 1172 e_mr->ib.ib_mr.lkey,
1173 shca->ipz_hca_handle.handle, 1173 shca->ipz_hca_handle.handle,
@@ -1183,7 +1183,7 @@ ehca_reg_mr_rpages_exit1:
1183 ehca_free_fw_ctrlblock(kpage); 1183 ehca_free_fw_ctrlblock(kpage);
1184ehca_reg_mr_rpages_exit0: 1184ehca_reg_mr_rpages_exit0:
1185 if (ret) 1185 if (ret)
1186 ehca_err(&shca->ib_device, "ret=%x shca=%p e_mr=%p pginfo=%p " 1186 ehca_err(&shca->ib_device, "ret=%i shca=%p e_mr=%p pginfo=%p "
1187 "num_kpages=%lx num_hwpages=%lx", ret, shca, e_mr, 1187 "num_kpages=%lx num_hwpages=%lx", ret, shca, e_mr,
1188 pginfo, pginfo->num_kpages, pginfo->num_hwpages); 1188 pginfo, pginfo->num_kpages, pginfo->num_hwpages);
1189 return ret; 1189 return ret;
@@ -1244,7 +1244,7 @@ inline int ehca_rereg_mr_rereg1(struct ehca_shca *shca,
1244 * (MW bound or MR is shared) 1244 * (MW bound or MR is shared)
1245 */ 1245 */
1246 ehca_warn(&shca->ib_device, "hipz_h_reregister_pmr failed " 1246 ehca_warn(&shca->ib_device, "hipz_h_reregister_pmr failed "
1247 "(Rereg1), h_ret=%lx e_mr=%p", h_ret, e_mr); 1247 "(Rereg1), h_ret=%li e_mr=%p", h_ret, e_mr);
1248 *pginfo = pginfo_save; 1248 *pginfo = pginfo_save;
1249 ret = -EAGAIN; 1249 ret = -EAGAIN;
1250 } else if ((u64 *)hipzout.vaddr != iova_start) { 1250 } else if ((u64 *)hipzout.vaddr != iova_start) {
@@ -1273,7 +1273,7 @@ ehca_rereg_mr_rereg1_exit1:
1273 ehca_free_fw_ctrlblock(kpage); 1273 ehca_free_fw_ctrlblock(kpage);
1274ehca_rereg_mr_rereg1_exit0: 1274ehca_rereg_mr_rereg1_exit0:
1275 if ( ret && (ret != -EAGAIN) ) 1275 if ( ret && (ret != -EAGAIN) )
1276 ehca_err(&shca->ib_device, "ret=%x lkey=%x rkey=%x " 1276 ehca_err(&shca->ib_device, "ret=%i lkey=%x rkey=%x "
1277 "pginfo=%p num_kpages=%lx num_hwpages=%lx", 1277 "pginfo=%p num_kpages=%lx num_hwpages=%lx",
1278 ret, *lkey, *rkey, pginfo, pginfo->num_kpages, 1278 ret, *lkey, *rkey, pginfo, pginfo->num_kpages,
1279 pginfo->num_hwpages); 1279 pginfo->num_hwpages);
@@ -1334,7 +1334,7 @@ int ehca_rereg_mr(struct ehca_shca *shca,
1334 h_ret = hipz_h_free_resource_mr(shca->ipz_hca_handle, e_mr); 1334 h_ret = hipz_h_free_resource_mr(shca->ipz_hca_handle, e_mr);
1335 if (h_ret != H_SUCCESS) { 1335 if (h_ret != H_SUCCESS) {
1336 ehca_err(&shca->ib_device, "hipz_free_mr failed, " 1336 ehca_err(&shca->ib_device, "hipz_free_mr failed, "
1337 "h_ret=%lx e_mr=%p hca_hndl=%lx mr_hndl=%lx " 1337 "h_ret=%li e_mr=%p hca_hndl=%lx mr_hndl=%lx "
1338 "mr->lkey=%x", 1338 "mr->lkey=%x",
1339 h_ret, e_mr, shca->ipz_hca_handle.handle, 1339 h_ret, e_mr, shca->ipz_hca_handle.handle,
1340 e_mr->ipz_mr_handle.handle, 1340 e_mr->ipz_mr_handle.handle,
@@ -1366,7 +1366,7 @@ int ehca_rereg_mr(struct ehca_shca *shca,
1366 1366
1367ehca_rereg_mr_exit0: 1367ehca_rereg_mr_exit0:
1368 if (ret) 1368 if (ret)
1369 ehca_err(&shca->ib_device, "ret=%x shca=%p e_mr=%p " 1369 ehca_err(&shca->ib_device, "ret=%i shca=%p e_mr=%p "
1370 "iova_start=%p size=%lx acl=%x e_pd=%p pginfo=%p " 1370 "iova_start=%p size=%lx acl=%x e_pd=%p pginfo=%p "
1371 "num_kpages=%lx lkey=%x rkey=%x rereg_1_hcall=%x " 1371 "num_kpages=%lx lkey=%x rkey=%x rereg_1_hcall=%x "
1372 "rereg_3_hcall=%x", ret, shca, e_mr, iova_start, size, 1372 "rereg_3_hcall=%x", ret, shca, e_mr, iova_start, size,
@@ -1410,7 +1410,7 @@ int ehca_unmap_one_fmr(struct ehca_shca *shca,
1410 * FMRs are not shared and no MW bound to FMRs 1410 * FMRs are not shared and no MW bound to FMRs
1411 */ 1411 */
1412 ehca_err(&shca->ib_device, "hipz_reregister_pmr failed " 1412 ehca_err(&shca->ib_device, "hipz_reregister_pmr failed "
1413 "(Rereg1), h_ret=%lx e_fmr=%p hca_hndl=%lx " 1413 "(Rereg1), h_ret=%li e_fmr=%p hca_hndl=%lx "
1414 "mr_hndl=%lx lkey=%x lkey_out=%x", 1414 "mr_hndl=%lx lkey=%x lkey_out=%x",
1415 h_ret, e_fmr, shca->ipz_hca_handle.handle, 1415 h_ret, e_fmr, shca->ipz_hca_handle.handle,
1416 e_fmr->ipz_mr_handle.handle, 1416 e_fmr->ipz_mr_handle.handle,
@@ -1422,7 +1422,7 @@ int ehca_unmap_one_fmr(struct ehca_shca *shca,
1422 h_ret = hipz_h_free_resource_mr(shca->ipz_hca_handle, e_fmr); 1422 h_ret = hipz_h_free_resource_mr(shca->ipz_hca_handle, e_fmr);
1423 if (h_ret != H_SUCCESS) { 1423 if (h_ret != H_SUCCESS) {
1424 ehca_err(&shca->ib_device, "hipz_free_mr failed, " 1424 ehca_err(&shca->ib_device, "hipz_free_mr failed, "
1425 "h_ret=%lx e_fmr=%p hca_hndl=%lx mr_hndl=%lx " 1425 "h_ret=%li e_fmr=%p hca_hndl=%lx mr_hndl=%lx "
1426 "lkey=%x", 1426 "lkey=%x",
1427 h_ret, e_fmr, shca->ipz_hca_handle.handle, 1427 h_ret, e_fmr, shca->ipz_hca_handle.handle,
1428 e_fmr->ipz_mr_handle.handle, 1428 e_fmr->ipz_mr_handle.handle,
@@ -1457,7 +1457,7 @@ int ehca_unmap_one_fmr(struct ehca_shca *shca,
1457 1457
1458ehca_unmap_one_fmr_exit0: 1458ehca_unmap_one_fmr_exit0:
1459 if (ret) 1459 if (ret)
1460 ehca_err(&shca->ib_device, "ret=%x tmp_lkey=%x tmp_rkey=%x " 1460 ehca_err(&shca->ib_device, "ret=%i tmp_lkey=%x tmp_rkey=%x "
1461 "fmr_max_pages=%x", 1461 "fmr_max_pages=%x",
1462 ret, tmp_lkey, tmp_rkey, e_fmr->fmr_max_pages); 1462 ret, tmp_lkey, tmp_rkey, e_fmr->fmr_max_pages);
1463 return ret; 1463 return ret;
@@ -1486,7 +1486,7 @@ int ehca_reg_smr(struct ehca_shca *shca,
1486 (u64)iova_start, hipz_acl, e_pd->fw_pd, 1486 (u64)iova_start, hipz_acl, e_pd->fw_pd,
1487 &hipzout); 1487 &hipzout);
1488 if (h_ret != H_SUCCESS) { 1488 if (h_ret != H_SUCCESS) {
1489 ehca_err(&shca->ib_device, "hipz_reg_smr failed, h_ret=%lx " 1489 ehca_err(&shca->ib_device, "hipz_reg_smr failed, h_ret=%li "
1490 "shca=%p e_origmr=%p e_newmr=%p iova_start=%p acl=%x " 1490 "shca=%p e_origmr=%p e_newmr=%p iova_start=%p acl=%x "
1491 "e_pd=%p hca_hndl=%lx mr_hndl=%lx lkey=%x", 1491 "e_pd=%p hca_hndl=%lx mr_hndl=%lx lkey=%x",
1492 h_ret, shca, e_origmr, e_newmr, iova_start, acl, e_pd, 1492 h_ret, shca, e_origmr, e_newmr, iova_start, acl, e_pd,
@@ -1510,7 +1510,7 @@ int ehca_reg_smr(struct ehca_shca *shca,
1510 1510
1511ehca_reg_smr_exit0: 1511ehca_reg_smr_exit0:
1512 if (ret) 1512 if (ret)
1513 ehca_err(&shca->ib_device, "ret=%x shca=%p e_origmr=%p " 1513 ehca_err(&shca->ib_device, "ret=%i shca=%p e_origmr=%p "
1514 "e_newmr=%p iova_start=%p acl=%x e_pd=%p", 1514 "e_newmr=%p iova_start=%p acl=%x e_pd=%p",
1515 ret, shca, e_origmr, e_newmr, iova_start, acl, e_pd); 1515 ret, shca, e_origmr, e_newmr, iova_start, acl, e_pd);
1516 return ret; 1516 return ret;
@@ -1585,7 +1585,7 @@ ehca_reg_internal_maxmr_exit1:
1585 ehca_mr_delete(e_mr); 1585 ehca_mr_delete(e_mr);
1586ehca_reg_internal_maxmr_exit0: 1586ehca_reg_internal_maxmr_exit0:
1587 if (ret) 1587 if (ret)
1588 ehca_err(&shca->ib_device, "ret=%x shca=%p e_pd=%p e_maxmr=%p", 1588 ehca_err(&shca->ib_device, "ret=%i shca=%p e_pd=%p e_maxmr=%p",
1589 ret, shca, e_pd, e_maxmr); 1589 ret, shca, e_pd, e_maxmr);
1590 return ret; 1590 return ret;
1591} /* end ehca_reg_internal_maxmr() */ 1591} /* end ehca_reg_internal_maxmr() */
@@ -1612,7 +1612,7 @@ int ehca_reg_maxmr(struct ehca_shca *shca,
1612 (u64)iova_start, hipz_acl, e_pd->fw_pd, 1612 (u64)iova_start, hipz_acl, e_pd->fw_pd,
1613 &hipzout); 1613 &hipzout);
1614 if (h_ret != H_SUCCESS) { 1614 if (h_ret != H_SUCCESS) {
1615 ehca_err(&shca->ib_device, "hipz_reg_smr failed, h_ret=%lx " 1615 ehca_err(&shca->ib_device, "hipz_reg_smr failed, h_ret=%li "
1616 "e_origmr=%p hca_hndl=%lx mr_hndl=%lx lkey=%x", 1616 "e_origmr=%p hca_hndl=%lx mr_hndl=%lx lkey=%x",
1617 h_ret, e_origmr, shca->ipz_hca_handle.handle, 1617 h_ret, e_origmr, shca->ipz_hca_handle.handle,
1618 e_origmr->ipz_mr_handle.handle, 1618 e_origmr->ipz_mr_handle.handle,
@@ -1653,7 +1653,7 @@ int ehca_dereg_internal_maxmr(struct ehca_shca *shca)
1653 ret = ehca_dereg_mr(&e_maxmr->ib.ib_mr); 1653 ret = ehca_dereg_mr(&e_maxmr->ib.ib_mr);
1654 if (ret) { 1654 if (ret) {
1655 ehca_err(&shca->ib_device, "dereg internal max-MR failed, " 1655 ehca_err(&shca->ib_device, "dereg internal max-MR failed, "
1656 "ret=%x e_maxmr=%p shca=%p lkey=%x", 1656 "ret=%i e_maxmr=%p shca=%p lkey=%x",
1657 ret, e_maxmr, shca, e_maxmr->ib.ib_mr.lkey); 1657 ret, e_maxmr, shca, e_maxmr->ib.ib_mr.lkey);
1658 shca->maxmr = e_maxmr; 1658 shca->maxmr = e_maxmr;
1659 goto ehca_dereg_internal_maxmr_exit0; 1659 goto ehca_dereg_internal_maxmr_exit0;
@@ -1663,7 +1663,7 @@ int ehca_dereg_internal_maxmr(struct ehca_shca *shca)
1663 1663
1664ehca_dereg_internal_maxmr_exit0: 1664ehca_dereg_internal_maxmr_exit0:
1665 if (ret) 1665 if (ret)
1666 ehca_err(&shca->ib_device, "ret=%x shca=%p shca->maxmr=%p", 1666 ehca_err(&shca->ib_device, "ret=%i shca=%p shca->maxmr=%p",
1667 ret, shca, shca->maxmr); 1667 ret, shca, shca->maxmr);
1668 return ret; 1668 return ret;
1669} /* end ehca_dereg_internal_maxmr() */ 1669} /* end ehca_dereg_internal_maxmr() */