Lines Matching refs:hwmr
718 mr->hwmr.fr_mr = 0; in ocrdma_alloc_lkey()
719 mr->hwmr.local_rd = 1; in ocrdma_alloc_lkey()
720 mr->hwmr.remote_rd = (acc & IB_ACCESS_REMOTE_READ) ? 1 : 0; in ocrdma_alloc_lkey()
721 mr->hwmr.remote_wr = (acc & IB_ACCESS_REMOTE_WRITE) ? 1 : 0; in ocrdma_alloc_lkey()
722 mr->hwmr.local_wr = (acc & IB_ACCESS_LOCAL_WRITE) ? 1 : 0; in ocrdma_alloc_lkey()
723 mr->hwmr.mw_bind = (acc & IB_ACCESS_MW_BIND) ? 1 : 0; in ocrdma_alloc_lkey()
724 mr->hwmr.remote_atomic = (acc & IB_ACCESS_REMOTE_ATOMIC) ? 1 : 0; in ocrdma_alloc_lkey()
725 mr->hwmr.num_pbls = num_pbls; in ocrdma_alloc_lkey()
727 status = ocrdma_mbx_alloc_lkey(dev, &mr->hwmr, pdid, addr_check); in ocrdma_alloc_lkey()
731 mr->ibmr.lkey = mr->hwmr.lkey; in ocrdma_alloc_lkey()
732 if (mr->hwmr.remote_wr || mr->hwmr.remote_rd) in ocrdma_alloc_lkey()
733 mr->ibmr.rkey = mr->hwmr.lkey; in ocrdma_alloc_lkey()
801 mr->hwmr.num_pbes = num_pbes; in ocrdma_get_pbl_info()
802 mr->hwmr.num_pbls = num_pbls; in ocrdma_get_pbl_info()
803 mr->hwmr.pbl_size = pbl_size; in ocrdma_get_pbl_info()
841 struct ocrdma_pbl *pbl_tbl = mr->hwmr.pbl_table; in build_user_pbes()
845 if (!mr->hwmr.num_pbes) in build_user_pbes()
878 (mr->hwmr.pbl_size / sizeof(u64))) { in build_user_pbes()
915 mr->hwmr.pbe_size = mr->umem->page_size; in ocrdma_reg_user_mr()
916 mr->hwmr.fbo = ib_umem_offset(mr->umem); in ocrdma_reg_user_mr()
917 mr->hwmr.va = usr_addr; in ocrdma_reg_user_mr()
918 mr->hwmr.len = len; in ocrdma_reg_user_mr()
919 mr->hwmr.remote_wr = (acc & IB_ACCESS_REMOTE_WRITE) ? 1 : 0; in ocrdma_reg_user_mr()
920 mr->hwmr.remote_rd = (acc & IB_ACCESS_REMOTE_READ) ? 1 : 0; in ocrdma_reg_user_mr()
921 mr->hwmr.local_wr = (acc & IB_ACCESS_LOCAL_WRITE) ? 1 : 0; in ocrdma_reg_user_mr()
922 mr->hwmr.local_rd = 1; in ocrdma_reg_user_mr()
923 mr->hwmr.remote_atomic = (acc & IB_ACCESS_REMOTE_ATOMIC) ? 1 : 0; in ocrdma_reg_user_mr()
924 status = ocrdma_build_pbl_tbl(dev, &mr->hwmr); in ocrdma_reg_user_mr()
928 status = ocrdma_reg_mr(dev, &mr->hwmr, pd->id, acc); in ocrdma_reg_user_mr()
931 mr->ibmr.lkey = mr->hwmr.lkey; in ocrdma_reg_user_mr()
932 if (mr->hwmr.remote_wr || mr->hwmr.remote_rd) in ocrdma_reg_user_mr()
933 mr->ibmr.rkey = mr->hwmr.lkey; in ocrdma_reg_user_mr()
938 ocrdma_free_mr_pbl_tbl(dev, &mr->hwmr); in ocrdma_reg_user_mr()
949 (void) ocrdma_mbx_dealloc_lkey(dev, mr->hwmr.fr_mr, mr->hwmr.lkey); in ocrdma_dereg_mr()
951 ocrdma_free_mr_pbl_tbl(dev, &mr->hwmr); in ocrdma_dereg_mr()
2066 struct ocrdma_hw_mr *hwmr) in build_frmr_pbes() argument
2091 if (num_pbes == (hwmr->pbl_size/sizeof(u64))) { in build_frmr_pbes()
2150 build_frmr_pbes(wr, mr->hwmr.pbl_table, &mr->hwmr); in ocrdma_build_fr()
2989 mr->hwmr.fr_mr = 1; in ocrdma_alloc_frmr()
2990 mr->hwmr.remote_rd = 0; in ocrdma_alloc_frmr()
2991 mr->hwmr.remote_wr = 0; in ocrdma_alloc_frmr()
2992 mr->hwmr.local_rd = 0; in ocrdma_alloc_frmr()
2993 mr->hwmr.local_wr = 0; in ocrdma_alloc_frmr()
2994 mr->hwmr.mw_bind = 0; in ocrdma_alloc_frmr()
2995 status = ocrdma_build_pbl_tbl(dev, &mr->hwmr); in ocrdma_alloc_frmr()
2998 status = ocrdma_reg_mr(dev, &mr->hwmr, pd->id, 0); in ocrdma_alloc_frmr()
3001 mr->ibmr.rkey = mr->hwmr.lkey; in ocrdma_alloc_frmr()
3002 mr->ibmr.lkey = mr->hwmr.lkey; in ocrdma_alloc_frmr()
3003 dev->stag_arr[(mr->hwmr.lkey >> 8) & (OCRDMA_MAX_STAG - 1)] = in ocrdma_alloc_frmr()
3007 ocrdma_free_mr_pbl_tbl(dev, &mr->hwmr); in ocrdma_alloc_frmr()
3072 struct ocrdma_hw_mr *hwmr) in build_kernel_pbes() argument
3082 if (!hwmr->num_pbes) in build_kernel_pbes()
3094 hwmr->len += buf_list[i].size; in build_kernel_pbes()
3122 if (total_num_pbes == hwmr->num_pbes) in build_kernel_pbes()
3127 if (num_pbes == (hwmr->pbl_size/sizeof(u64))) { in build_kernel_pbes()
3165 mr->hwmr.pbe_size = pbe_size; in ocrdma_reg_kernel_mr()
3166 mr->hwmr.fbo = *iova_start - (buf_list[0].addr & PAGE_MASK); in ocrdma_reg_kernel_mr()
3167 mr->hwmr.va = *iova_start; in ocrdma_reg_kernel_mr()
3168 mr->hwmr.local_rd = 1; in ocrdma_reg_kernel_mr()
3169 mr->hwmr.remote_wr = (acc & IB_ACCESS_REMOTE_WRITE) ? 1 : 0; in ocrdma_reg_kernel_mr()
3170 mr->hwmr.remote_rd = (acc & IB_ACCESS_REMOTE_READ) ? 1 : 0; in ocrdma_reg_kernel_mr()
3171 mr->hwmr.local_wr = (acc & IB_ACCESS_LOCAL_WRITE) ? 1 : 0; in ocrdma_reg_kernel_mr()
3172 mr->hwmr.remote_atomic = (acc & IB_ACCESS_REMOTE_ATOMIC) ? 1 : 0; in ocrdma_reg_kernel_mr()
3173 mr->hwmr.mw_bind = (acc & IB_ACCESS_MW_BIND) ? 1 : 0; in ocrdma_reg_kernel_mr()
3175 status = ocrdma_build_pbl_tbl(dev, &mr->hwmr); in ocrdma_reg_kernel_mr()
3178 build_kernel_pbes(buf_list, buf_cnt, pbe_size, mr->hwmr.pbl_table, in ocrdma_reg_kernel_mr()
3179 &mr->hwmr); in ocrdma_reg_kernel_mr()
3180 status = ocrdma_reg_mr(dev, &mr->hwmr, pd->id, acc); in ocrdma_reg_kernel_mr()
3184 mr->ibmr.lkey = mr->hwmr.lkey; in ocrdma_reg_kernel_mr()
3185 if (mr->hwmr.remote_wr || mr->hwmr.remote_rd) in ocrdma_reg_kernel_mr()
3186 mr->ibmr.rkey = mr->hwmr.lkey; in ocrdma_reg_kernel_mr()
3190 ocrdma_free_mr_pbl_tbl(dev, &mr->hwmr); in ocrdma_reg_kernel_mr()