hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/drivers/infiniband/hw/bnxt_re/ib_verbs.c
....@@ -469,7 +469,6 @@
469469 struct bnxt_re_mr *mr = NULL;
470470 dma_addr_t dma_addr = 0;
471471 struct ib_mw *mw;
472
- u64 pbl_tbl;
473472 int rc;
474473
475474 dma_addr = dma_map_single(dev, fence->va, BNXT_RE_FENCE_BYTES,
....@@ -504,9 +503,8 @@
504503 mr->ib_mr.lkey = mr->qplib_mr.lkey;
505504 mr->qplib_mr.va = (u64)(unsigned long)fence->va;
506505 mr->qplib_mr.total_size = BNXT_RE_FENCE_BYTES;
507
- pbl_tbl = dma_addr;
508
- rc = bnxt_qplib_reg_mr(&rdev->qplib_res, &mr->qplib_mr, &pbl_tbl,
509
- BNXT_RE_FENCE_PBL_SIZE, false, PAGE_SIZE);
506
+ rc = bnxt_qplib_reg_mr(&rdev->qplib_res, &mr->qplib_mr, NULL,
507
+ BNXT_RE_FENCE_PBL_SIZE, PAGE_SIZE);
510508 if (rc) {
511509 ibdev_err(&rdev->ibdev, "Failed to register fence-MR\n");
512510 goto fail;
....@@ -3249,9 +3247,7 @@
32493247 udwr.remote_qkey = gsi_sqp->qplib_qp.qkey;
32503248
32513249 /* post data received in the send queue */
3252
- rc = bnxt_re_post_send_shadow_qp(rdev, gsi_sqp, swr);
3253
-
3254
- return 0;
3250
+ return bnxt_re_post_send_shadow_qp(rdev, gsi_sqp, swr);
32553251 }
32563252
32573253 static void bnxt_re_process_res_rawqp1_wc(struct ib_wc *wc,
....@@ -3588,7 +3584,6 @@
35883584 struct bnxt_re_pd *pd = container_of(ib_pd, struct bnxt_re_pd, ib_pd);
35893585 struct bnxt_re_dev *rdev = pd->rdev;
35903586 struct bnxt_re_mr *mr;
3591
- u64 pbl = 0;
35923587 int rc;
35933588
35943589 mr = kzalloc(sizeof(*mr), GFP_KERNEL);
....@@ -3607,7 +3602,7 @@
36073602
36083603 mr->qplib_mr.hwq.level = PBL_LVL_MAX;
36093604 mr->qplib_mr.total_size = -1; /* Infinte length */
3610
- rc = bnxt_qplib_reg_mr(&rdev->qplib_res, &mr->qplib_mr, &pbl, 0, false,
3605
+ rc = bnxt_qplib_reg_mr(&rdev->qplib_res, &mr->qplib_mr, NULL, 0,
36113606 PAGE_SIZE);
36123607 if (rc)
36133608 goto fail_mr;
....@@ -3778,19 +3773,6 @@
37783773 return rc;
37793774 }
37803775
3781
-static int fill_umem_pbl_tbl(struct ib_umem *umem, u64 *pbl_tbl_orig,
3782
- int page_shift)
3783
-{
3784
- u64 *pbl_tbl = pbl_tbl_orig;
3785
- u64 page_size = BIT_ULL(page_shift);
3786
- struct ib_block_iter biter;
3787
-
3788
- rdma_umem_for_each_dma_block(umem, &biter, page_size)
3789
- *pbl_tbl++ = rdma_block_iter_dma_address(&biter);
3790
-
3791
- return pbl_tbl - pbl_tbl_orig;
3792
-}
3793
-
37943776 /* uverbs */
37953777 struct ib_mr *bnxt_re_reg_user_mr(struct ib_pd *ib_pd, u64 start, u64 length,
37963778 u64 virt_addr, int mr_access_flags,
....@@ -3800,7 +3782,6 @@
38003782 struct bnxt_re_dev *rdev = pd->rdev;
38013783 struct bnxt_re_mr *mr;
38023784 struct ib_umem *umem;
3803
- u64 *pbl_tbl = NULL;
38043785 unsigned long page_size;
38053786 int umem_pgs, rc;
38063787
....@@ -3854,30 +3835,18 @@
38543835 }
38553836
38563837 umem_pgs = ib_umem_num_dma_blocks(umem, page_size);
3857
- pbl_tbl = kcalloc(umem_pgs, sizeof(*pbl_tbl), GFP_KERNEL);
3858
- if (!pbl_tbl) {
3859
- rc = -ENOMEM;
3860
- goto free_umem;
3861
- }
3862
-
3863
- /* Map umem buf ptrs to the PBL */
3864
- umem_pgs = fill_umem_pbl_tbl(umem, pbl_tbl, order_base_2(page_size));
3865
- rc = bnxt_qplib_reg_mr(&rdev->qplib_res, &mr->qplib_mr, pbl_tbl,
3866
- umem_pgs, false, page_size);
3838
+ rc = bnxt_qplib_reg_mr(&rdev->qplib_res, &mr->qplib_mr, umem,
3839
+ umem_pgs, page_size);
38673840 if (rc) {
38683841 ibdev_err(&rdev->ibdev, "Failed to register user MR");
3869
- goto fail;
3842
+ goto free_umem;
38703843 }
3871
-
3872
- kfree(pbl_tbl);
38733844
38743845 mr->ib_mr.lkey = mr->qplib_mr.lkey;
38753846 mr->ib_mr.rkey = mr->qplib_mr.lkey;
38763847 atomic_inc(&rdev->mr_count);
38773848
38783849 return &mr->ib_mr;
3879
-fail:
3880
- kfree(pbl_tbl);
38813850 free_umem:
38823851 ib_umem_release(umem);
38833852 free_mrw: