Lines Matching refs:ucontext
183 struct efa_ucontext *ucontext) in mmap_entries_remove_free() argument
188 xa_for_each(&ucontext->mmap_xa, mmap_page, entry) { in mmap_entries_remove_free()
189 xa_erase(&ucontext->mmap_xa, mmap_page); in mmap_entries_remove_free()
205 struct efa_ucontext *ucontext, in mmap_entry_get() argument
215 entry = xa_load(&ucontext->mmap_xa, mmap_page); in mmap_entry_get()
230 static u64 mmap_entry_insert(struct efa_dev *dev, struct efa_ucontext *ucontext, in mmap_entry_insert() argument
246 xa_lock(&ucontext->mmap_xa); in mmap_entry_insert()
247 if (check_add_overflow(ucontext->mmap_xa_page, in mmap_entry_insert()
252 entry->mmap_page = ucontext->mmap_xa_page; in mmap_entry_insert()
253 ucontext->mmap_xa_page = next_mmap_page; in mmap_entry_insert()
254 err = __xa_insert(&ucontext->mmap_xa, entry->mmap_page, entry, in mmap_entry_insert()
259 xa_unlock(&ucontext->mmap_xa); in mmap_entry_insert()
269 xa_unlock(&ucontext->mmap_xa); in mmap_entry_insert()
514 struct efa_ucontext *ucontext, in qp_mmap_entries_setup() argument
523 mmap_entry_insert(dev, ucontext, qp, in qp_mmap_entries_setup()
532 mmap_entry_insert(dev, ucontext, qp, in qp_mmap_entries_setup()
544 mmap_entry_insert(dev, ucontext, qp, in qp_mmap_entries_setup()
553 mmap_entry_insert(dev, ucontext, qp, in qp_mmap_entries_setup()
638 struct efa_ucontext *ucontext; in efa_create_qp() local
642 ucontext = rdma_udata_to_drv_context(udata, struct efa_ucontext, in efa_create_qp()
690 create_qp_params.uarn = ucontext->uarn; in efa_create_qp()
740 err = qp_mmap_entries_setup(qp, dev, ucontext, &create_qp_params, in efa_create_qp()
906 resp->q_mmap_key = mmap_entry_insert(dev, cq->ucontext, cq, in cq_mmap_entries_setup()
918 struct efa_ucontext *ucontext = rdma_udata_to_drv_context( in efa_create_cq() local
986 cq->ucontext = ucontext; in efa_create_cq()
995 params.uarn = cq->ucontext->uarn; in efa_create_cq()
1543 struct efa_ucontext *ucontext = to_eucontext(ibucontext); in efa_alloc_ucontext() local
1558 ucontext->uarn = result.uarn; in efa_alloc_ucontext()
1559 xa_init(&ucontext->mmap_xa); in efa_alloc_ucontext()
1585 struct efa_ucontext *ucontext = to_eucontext(ibucontext); in efa_dealloc_ucontext() local
1588 mmap_entries_remove_free(dev, ucontext); in efa_dealloc_ucontext()
1589 efa_dealloc_uar(dev, ucontext->uarn); in efa_dealloc_ucontext()
1592 static int __efa_mmap(struct efa_dev *dev, struct efa_ucontext *ucontext, in __efa_mmap() argument
1600 entry = mmap_entry_get(dev, ucontext, key, length); in __efa_mmap()
1614 err = rdma_user_mmap_io(&ucontext->ibucontext, vma, pfn, length, in __efa_mmap()
1618 err = rdma_user_mmap_io(&ucontext->ibucontext, vma, pfn, length, in __efa_mmap()
1647 struct efa_ucontext *ucontext = to_eucontext(ibucontext); in efa_mmap() local
1668 return __efa_mmap(dev, ucontext, vma, key, length); in efa_mmap()