Lines Matching refs:mr

401 	struct ib_mr *ib_mr = &fence->mr->ib_mr;  in bnxt_re_create_fence_wqe()
455 struct bnxt_re_mr *mr = fence->mr; in bnxt_re_destroy_fence_mr() local
461 if (mr) { in bnxt_re_destroy_fence_mr()
462 if (mr->ib_mr.rkey) in bnxt_re_destroy_fence_mr()
463 bnxt_qplib_dereg_mrw(&rdev->qplib_res, &mr->qplib_mr, in bnxt_re_destroy_fence_mr()
465 if (mr->ib_mr.lkey) in bnxt_re_destroy_fence_mr()
466 bnxt_qplib_free_mrw(&rdev->qplib_res, &mr->qplib_mr); in bnxt_re_destroy_fence_mr()
467 kfree(mr); in bnxt_re_destroy_fence_mr()
468 fence->mr = NULL; in bnxt_re_destroy_fence_mr()
483 struct bnxt_re_mr *mr = NULL; in bnxt_re_create_fence_mr() local
500 mr = kzalloc(sizeof(*mr), GFP_KERNEL); in bnxt_re_create_fence_mr()
501 if (!mr) { in bnxt_re_create_fence_mr()
505 fence->mr = mr; in bnxt_re_create_fence_mr()
506 mr->rdev = rdev; in bnxt_re_create_fence_mr()
507 mr->qplib_mr.pd = &pd->qplib_pd; in bnxt_re_create_fence_mr()
508 mr->qplib_mr.type = CMDQ_ALLOCATE_MRW_MRW_FLAGS_PMR; in bnxt_re_create_fence_mr()
509 mr->qplib_mr.flags = __from_ib_access_flags(mr_access_flags); in bnxt_re_create_fence_mr()
510 rc = bnxt_qplib_alloc_mrw(&rdev->qplib_res, &mr->qplib_mr); in bnxt_re_create_fence_mr()
517 mr->ib_mr.lkey = mr->qplib_mr.lkey; in bnxt_re_create_fence_mr()
518 mr->qplib_mr.va = (u64)(unsigned long)fence->va; in bnxt_re_create_fence_mr()
519 mr->qplib_mr.total_size = BNXT_RE_FENCE_BYTES; in bnxt_re_create_fence_mr()
520 rc = bnxt_qplib_reg_mr(&rdev->qplib_res, &mr->qplib_mr, NULL, in bnxt_re_create_fence_mr()
526 mr->ib_mr.rkey = mr->qplib_mr.rkey; in bnxt_re_create_fence_mr()
2572 struct bnxt_re_mr *mr = container_of(wr->mr, struct bnxt_re_mr, ib_mr); in bnxt_re_build_reg_wqe() local
2573 struct bnxt_qplib_frpl *qplib_frpl = &mr->qplib_frpl; in bnxt_re_build_reg_wqe()
2578 wqe->frmr.page_list = mr->pages; in bnxt_re_build_reg_wqe()
2579 wqe->frmr.page_list_len = mr->npages; in bnxt_re_build_reg_wqe()
2604 wqe->frmr.length = wr->mr->length; in bnxt_re_build_reg_wqe()
2606 wqe->frmr.pg_sz_log = ilog2(wr->mr->page_size >> PAGE_SHIFT_4K); in bnxt_re_build_reg_wqe()
2607 wqe->frmr.va = wr->mr->iova; in bnxt_re_build_reg_wqe()
3801 struct bnxt_re_mr *mr; in bnxt_re_get_dma_mr() local
3805 mr = kzalloc(sizeof(*mr), GFP_KERNEL); in bnxt_re_get_dma_mr()
3806 if (!mr) in bnxt_re_get_dma_mr()
3809 mr->rdev = rdev; in bnxt_re_get_dma_mr()
3810 mr->qplib_mr.pd = &pd->qplib_pd; in bnxt_re_get_dma_mr()
3811 mr->qplib_mr.flags = __from_ib_access_flags(mr_access_flags); in bnxt_re_get_dma_mr()
3812 mr->qplib_mr.type = CMDQ_ALLOCATE_MRW_MRW_FLAGS_PMR; in bnxt_re_get_dma_mr()
3815 rc = bnxt_qplib_alloc_mrw(&rdev->qplib_res, &mr->qplib_mr); in bnxt_re_get_dma_mr()
3819 mr->qplib_mr.hwq.level = PBL_LVL_MAX; in bnxt_re_get_dma_mr()
3820 mr->qplib_mr.total_size = -1; /* Infinte length */ in bnxt_re_get_dma_mr()
3821 rc = bnxt_qplib_reg_mr(&rdev->qplib_res, &mr->qplib_mr, NULL, 0, in bnxt_re_get_dma_mr()
3826 mr->ib_mr.lkey = mr->qplib_mr.lkey; in bnxt_re_get_dma_mr()
3829 mr->ib_mr.rkey = mr->ib_mr.lkey; in bnxt_re_get_dma_mr()
3834 return &mr->ib_mr; in bnxt_re_get_dma_mr()
3837 bnxt_qplib_free_mrw(&rdev->qplib_res, &mr->qplib_mr); in bnxt_re_get_dma_mr()
3839 kfree(mr); in bnxt_re_get_dma_mr()
3845 struct bnxt_re_mr *mr = container_of(ib_mr, struct bnxt_re_mr, ib_mr); in bnxt_re_dereg_mr() local
3846 struct bnxt_re_dev *rdev = mr->rdev; in bnxt_re_dereg_mr()
3849 rc = bnxt_qplib_free_mrw(&rdev->qplib_res, &mr->qplib_mr); in bnxt_re_dereg_mr()
3855 if (mr->pages) { in bnxt_re_dereg_mr()
3857 &mr->qplib_frpl); in bnxt_re_dereg_mr()
3858 kfree(mr->pages); in bnxt_re_dereg_mr()
3859 mr->npages = 0; in bnxt_re_dereg_mr()
3860 mr->pages = NULL; in bnxt_re_dereg_mr()
3862 ib_umem_release(mr->ib_umem); in bnxt_re_dereg_mr()
3864 kfree(mr); in bnxt_re_dereg_mr()
3871 struct bnxt_re_mr *mr = container_of(ib_mr, struct bnxt_re_mr, ib_mr); in bnxt_re_set_page() local
3873 if (unlikely(mr->npages == mr->qplib_frpl.max_pg_ptrs)) in bnxt_re_set_page()
3876 mr->pages[mr->npages++] = addr; in bnxt_re_set_page()
3883 struct bnxt_re_mr *mr = container_of(ib_mr, struct bnxt_re_mr, ib_mr); in bnxt_re_map_mr_sg() local
3885 mr->npages = 0; in bnxt_re_map_mr_sg()
3894 struct bnxt_re_mr *mr = NULL; in bnxt_re_alloc_mr() local
3905 mr = kzalloc(sizeof(*mr), GFP_KERNEL); in bnxt_re_alloc_mr()
3906 if (!mr) in bnxt_re_alloc_mr()
3909 mr->rdev = rdev; in bnxt_re_alloc_mr()
3910 mr->qplib_mr.pd = &pd->qplib_pd; in bnxt_re_alloc_mr()
3911 mr->qplib_mr.flags = BNXT_QPLIB_FR_PMR; in bnxt_re_alloc_mr()
3912 mr->qplib_mr.type = CMDQ_ALLOCATE_MRW_MRW_FLAGS_PMR; in bnxt_re_alloc_mr()
3914 rc = bnxt_qplib_alloc_mrw(&rdev->qplib_res, &mr->qplib_mr); in bnxt_re_alloc_mr()
3918 mr->ib_mr.lkey = mr->qplib_mr.lkey; in bnxt_re_alloc_mr()
3919 mr->ib_mr.rkey = mr->ib_mr.lkey; in bnxt_re_alloc_mr()
3921 mr->pages = kcalloc(max_num_sg, sizeof(u64), GFP_KERNEL); in bnxt_re_alloc_mr()
3922 if (!mr->pages) { in bnxt_re_alloc_mr()
3927 &mr->qplib_frpl, max_num_sg); in bnxt_re_alloc_mr()
3937 return &mr->ib_mr; in bnxt_re_alloc_mr()
3940 kfree(mr->pages); in bnxt_re_alloc_mr()
3942 bnxt_qplib_free_mrw(&rdev->qplib_res, &mr->qplib_mr); in bnxt_re_alloc_mr()
3944 kfree(mr); in bnxt_re_alloc_mr()
4006 struct bnxt_re_mr *mr; in __bnxt_re_user_reg_mr() local
4022 mr = kzalloc(sizeof(*mr), GFP_KERNEL); in __bnxt_re_user_reg_mr()
4023 if (!mr) in __bnxt_re_user_reg_mr()
4026 mr->rdev = rdev; in __bnxt_re_user_reg_mr()
4027 mr->qplib_mr.pd = &pd->qplib_pd; in __bnxt_re_user_reg_mr()
4028 mr->qplib_mr.flags = __from_ib_access_flags(mr_access_flags); in __bnxt_re_user_reg_mr()
4029 mr->qplib_mr.type = CMDQ_ALLOCATE_MRW_MRW_FLAGS_MR; in __bnxt_re_user_reg_mr()
4031 rc = bnxt_qplib_alloc_mrw(&rdev->qplib_res, &mr->qplib_mr); in __bnxt_re_user_reg_mr()
4038 mr->ib_mr.rkey = mr->qplib_mr.rkey; in __bnxt_re_user_reg_mr()
4039 mr->ib_umem = umem; in __bnxt_re_user_reg_mr()
4040 mr->qplib_mr.va = virt_addr; in __bnxt_re_user_reg_mr()
4041 mr->qplib_mr.total_size = length; in __bnxt_re_user_reg_mr()
4044 rc = bnxt_qplib_reg_mr(&rdev->qplib_res, &mr->qplib_mr, umem, in __bnxt_re_user_reg_mr()
4052 mr->ib_mr.lkey = mr->qplib_mr.lkey; in __bnxt_re_user_reg_mr()
4053 mr->ib_mr.rkey = mr->qplib_mr.lkey; in __bnxt_re_user_reg_mr()
4058 return &mr->ib_mr; in __bnxt_re_user_reg_mr()
4061 bnxt_qplib_free_mrw(&rdev->qplib_res, &mr->qplib_mr); in __bnxt_re_user_reg_mr()
4063 kfree(mr); in __bnxt_re_user_reg_mr()