Lines Matching refs:iwmr

113 	struct irdma_mr *iwmr;  in irdma_alloc_mr()  local
118 iwmr = kzalloc(sizeof(*iwmr), GFP_KERNEL); in irdma_alloc_mr()
119 if (!iwmr) in irdma_alloc_mr()
128 iwmr->stag = stag; in irdma_alloc_mr()
129 iwmr->ibmr.rkey = stag; in irdma_alloc_mr()
130 iwmr->ibmr.lkey = stag; in irdma_alloc_mr()
131 iwmr->ibmr.pd = pd; in irdma_alloc_mr()
132 iwmr->ibmr.device = pd->device; in irdma_alloc_mr()
133 iwpbl = &iwmr->iwpbl; in irdma_alloc_mr()
134 iwpbl->iwmr = iwmr; in irdma_alloc_mr()
135 iwmr->type = IRDMA_MEMREG_TYPE_MEM; in irdma_alloc_mr()
137 iwmr->page_cnt = max_num_sg; in irdma_alloc_mr()
139 iwmr->len = max_num_sg * PAGE_SIZE; in irdma_alloc_mr()
140 status = irdma_get_pble(iwdev->rf->pble_rsrc, palloc, iwmr->page_cnt, in irdma_alloc_mr()
145 err_code = irdma_hw_alloc_stag(iwdev, iwmr); in irdma_alloc_mr()
151 return &iwmr->ibmr; in irdma_alloc_mr()
157 kfree(iwmr); in irdma_alloc_mr()
1141 irdma_copy_user_pgaddrs(struct irdma_mr *iwmr, u64 *pbl, in irdma_copy_user_pgaddrs() argument
1144 struct ib_umem *region = iwmr->region; in irdma_copy_user_pgaddrs()
1145 struct irdma_pbl *iwpbl = &iwmr->iwpbl; in irdma_copy_user_pgaddrs()
1156 chunk_pages = DIV_ROUND_UP(sg_dma_len(sg), iwmr->page_size); in irdma_copy_user_pgaddrs()
1157 if (iwmr->type == IRDMA_MEMREG_TYPE_QP && !iwpbl->qp_mr.sq_page) in irdma_copy_user_pgaddrs()
1160 pg_addr = sg_dma_address(sg) + (i * iwmr->page_size); in irdma_copy_user_pgaddrs()
1162 *pbl = pg_addr & iwmr->page_msk; in irdma_copy_user_pgaddrs()
1163 else if (!(pg_addr & ~iwmr->page_msk)) in irdma_copy_user_pgaddrs()
1197 struct irdma_mr *iwmr = to_iwmr(ib_mr); in irdma_dereg_mr() local
1199 struct irdma_pbl *iwpbl = &iwmr->iwpbl; in irdma_dereg_mr()
1202 if (iwmr->type != IRDMA_MEMREG_TYPE_MEM) { in irdma_dereg_mr()
1203 if (iwmr->region) { in irdma_dereg_mr()
1208 irdma_del_memlist(iwmr, ucontext); in irdma_dereg_mr()
1217 irdma_free_stag(iwdev, iwmr->stag); in irdma_dereg_mr()
1222 if (iwmr->region) in irdma_dereg_mr()
1223 ib_umem_release(iwmr->region); in irdma_dereg_mr()
1225 kfree(iwmr); in irdma_dereg_mr()
1241 struct irdma_mr *iwmr = to_iwmr(ib_mr); in irdma_rereg_user_mr() local
1242 struct irdma_pbl *iwpbl = &iwmr->iwpbl; in irdma_rereg_user_mr()
1256 iwmr->access = new_access; in irdma_rereg_user_mr()
1259 iwmr->ibmr.pd = new_pd; in irdma_rereg_user_mr()
1260 iwmr->ibmr.device = new_pd->device; in irdma_rereg_user_mr()
1269 if (iwmr->region) { in irdma_rereg_user_mr()
1270 ib_umem_release(iwmr->region); in irdma_rereg_user_mr()
1271 iwmr->region = NULL; in irdma_rereg_user_mr()
1274 ib_mr = irdma_rereg_mr_trans(iwmr, start, len, virt, udata); in irdma_rereg_user_mr()
1279 ret = irdma_hwreg_mr(iwdev, iwmr, iwmr->access); in irdma_rereg_user_mr()