Lines Matching refs:frmr
111 ctxt->frmr = NULL; in svc_rdma_get_context()
341 if (ctxt->frmr) in process_context()
347 if (ctxt->frmr) in process_context()
354 svc_rdma_put_frmr(xprt, ctxt->frmr); in process_context()
748 struct svc_rdma_fastreg_mr *frmr; in rdma_alloc_frmr() local
750 frmr = kmalloc(sizeof(*frmr), GFP_KERNEL); in rdma_alloc_frmr()
751 if (!frmr) in rdma_alloc_frmr()
763 frmr->mr = mr; in rdma_alloc_frmr()
764 frmr->page_list = pl; in rdma_alloc_frmr()
765 INIT_LIST_HEAD(&frmr->frmr_list); in rdma_alloc_frmr()
766 return frmr; in rdma_alloc_frmr()
771 kfree(frmr); in rdma_alloc_frmr()
778 struct svc_rdma_fastreg_mr *frmr; in rdma_dealloc_frmr_q() local
781 frmr = list_entry(xprt->sc_frmr_q.next, in rdma_dealloc_frmr_q()
783 list_del_init(&frmr->frmr_list); in rdma_dealloc_frmr_q()
784 ib_dereg_mr(frmr->mr); in rdma_dealloc_frmr_q()
785 ib_free_fast_reg_page_list(frmr->page_list); in rdma_dealloc_frmr_q()
786 kfree(frmr); in rdma_dealloc_frmr_q()
792 struct svc_rdma_fastreg_mr *frmr = NULL; in svc_rdma_get_frmr() local
796 frmr = list_entry(rdma->sc_frmr_q.next, in svc_rdma_get_frmr()
798 list_del_init(&frmr->frmr_list); in svc_rdma_get_frmr()
799 frmr->map_len = 0; in svc_rdma_get_frmr()
800 frmr->page_list_len = 0; in svc_rdma_get_frmr()
803 if (frmr) in svc_rdma_get_frmr()
804 return frmr; in svc_rdma_get_frmr()
810 struct svc_rdma_fastreg_mr *frmr) in frmr_unmap_dma() argument
813 for (page_no = 0; page_no < frmr->page_list_len; page_no++) { in frmr_unmap_dma()
814 dma_addr_t addr = frmr->page_list->page_list[page_no]; in frmr_unmap_dma()
815 if (ib_dma_mapping_error(frmr->mr->device, addr)) in frmr_unmap_dma()
818 ib_dma_unmap_page(frmr->mr->device, addr, PAGE_SIZE, in frmr_unmap_dma()
819 frmr->direction); in frmr_unmap_dma()
824 struct svc_rdma_fastreg_mr *frmr) in svc_rdma_put_frmr() argument
826 if (frmr) { in svc_rdma_put_frmr()
827 frmr_unmap_dma(rdma, frmr); in svc_rdma_put_frmr()
829 WARN_ON_ONCE(!list_empty(&frmr->frmr_list)); in svc_rdma_put_frmr()
830 list_add(&frmr->frmr_list, &rdma->sc_frmr_q); in svc_rdma_put_frmr()
1236 struct svc_rdma_fastreg_mr *frmr) in svc_rdma_fastreg() argument
1242 key = (u8)(frmr->mr->lkey & 0x000000FF); in svc_rdma_fastreg()
1243 ib_update_fast_reg_key(frmr->mr, ++key); in svc_rdma_fastreg()
1249 fastreg_wr.wr.fast_reg.iova_start = (unsigned long)frmr->kva; in svc_rdma_fastreg()
1250 fastreg_wr.wr.fast_reg.page_list = frmr->page_list; in svc_rdma_fastreg()
1251 fastreg_wr.wr.fast_reg.page_list_len = frmr->page_list_len; in svc_rdma_fastreg()
1253 fastreg_wr.wr.fast_reg.length = frmr->map_len; in svc_rdma_fastreg()
1254 fastreg_wr.wr.fast_reg.access_flags = frmr->access_flags; in svc_rdma_fastreg()
1255 fastreg_wr.wr.fast_reg.rkey = frmr->mr->lkey; in svc_rdma_fastreg()