Lines Matching refs:mr

61 	struct pvrdma_user_mr *mr;  in pvrdma_get_dma_mr()  local
75 mr = kzalloc(sizeof(*mr), GFP_KERNEL); in pvrdma_get_dma_mr()
76 if (!mr) in pvrdma_get_dma_mr()
89 kfree(mr); in pvrdma_get_dma_mr()
93 mr->mmr.mr_handle = resp->mr_handle; in pvrdma_get_dma_mr()
94 mr->ibmr.lkey = resp->lkey; in pvrdma_get_dma_mr()
95 mr->ibmr.rkey = resp->rkey; in pvrdma_get_dma_mr()
97 return &mr->ibmr; in pvrdma_get_dma_mr()
116 struct pvrdma_user_mr *mr = NULL; in pvrdma_reg_user_mr() local
144 mr = kzalloc(sizeof(*mr), GFP_KERNEL); in pvrdma_reg_user_mr()
145 if (!mr) { in pvrdma_reg_user_mr()
150 mr->mmr.iova = virt_addr; in pvrdma_reg_user_mr()
151 mr->mmr.size = length; in pvrdma_reg_user_mr()
152 mr->umem = umem; in pvrdma_reg_user_mr()
154 ret = pvrdma_page_dir_init(dev, &mr->pdir, npages, false); in pvrdma_reg_user_mr()
161 ret = pvrdma_page_dir_insert_umem(&mr->pdir, mr->umem, 0); in pvrdma_reg_user_mr()
172 cmd->pdir_dma = mr->pdir.dir_dma; in pvrdma_reg_user_mr()
181 mr->mmr.mr_handle = resp->mr_handle; in pvrdma_reg_user_mr()
182 mr->ibmr.lkey = resp->lkey; in pvrdma_reg_user_mr()
183 mr->ibmr.rkey = resp->rkey; in pvrdma_reg_user_mr()
185 return &mr->ibmr; in pvrdma_reg_user_mr()
188 pvrdma_page_dir_cleanup(dev, &mr->pdir); in pvrdma_reg_user_mr()
191 kfree(mr); in pvrdma_reg_user_mr()
208 struct pvrdma_user_mr *mr; in pvrdma_alloc_mr() local
220 mr = kzalloc(sizeof(*mr), GFP_KERNEL); in pvrdma_alloc_mr()
221 if (!mr) in pvrdma_alloc_mr()
224 mr->pages = kzalloc(size, GFP_KERNEL); in pvrdma_alloc_mr()
225 if (!mr->pages) { in pvrdma_alloc_mr()
230 ret = pvrdma_page_dir_init(dev, &mr->pdir, max_num_sg, false); in pvrdma_alloc_mr()
252 mr->max_pages = max_num_sg; in pvrdma_alloc_mr()
253 mr->mmr.mr_handle = resp->mr_handle; in pvrdma_alloc_mr()
254 mr->ibmr.lkey = resp->lkey; in pvrdma_alloc_mr()
255 mr->ibmr.rkey = resp->rkey; in pvrdma_alloc_mr()
256 mr->page_shift = PAGE_SHIFT; in pvrdma_alloc_mr()
257 mr->umem = NULL; in pvrdma_alloc_mr()
259 return &mr->ibmr; in pvrdma_alloc_mr()
262 pvrdma_page_dir_cleanup(dev, &mr->pdir); in pvrdma_alloc_mr()
264 kfree(mr->pages); in pvrdma_alloc_mr()
266 kfree(mr); in pvrdma_alloc_mr()
279 struct pvrdma_user_mr *mr = to_vmr(ibmr); in pvrdma_dereg_mr() local
287 cmd->mr_handle = mr->mmr.mr_handle; in pvrdma_dereg_mr()
293 pvrdma_page_dir_cleanup(dev, &mr->pdir); in pvrdma_dereg_mr()
294 ib_umem_release(mr->umem); in pvrdma_dereg_mr()
296 kfree(mr->pages); in pvrdma_dereg_mr()
297 kfree(mr); in pvrdma_dereg_mr()
304 struct pvrdma_user_mr *mr = to_vmr(ibmr); in pvrdma_set_page() local
306 if (mr->npages == mr->max_pages) in pvrdma_set_page()
309 mr->pages[mr->npages++] = addr; in pvrdma_set_page()
316 struct pvrdma_user_mr *mr = to_vmr(ibmr); in pvrdma_map_mr_sg() local
320 mr->npages = 0; in pvrdma_map_mr_sg()