ufile 131 drivers/infiniband/core/rdma_core.c struct ib_uverbs_file *ufile = attrs->ufile; ufile 135 drivers/infiniband/core/rdma_core.c lockdep_assert_held(&ufile->hw_destroy_rwsem); ufile 173 drivers/infiniband/core/rdma_core.c spin_lock_irqsave(&ufile->uobjects_lock, flags); ufile 175 drivers/infiniband/core/rdma_core.c spin_unlock_irqrestore(&ufile->uobjects_lock, flags); ufile 203 drivers/infiniband/core/rdma_core.c struct ib_uverbs_file *ufile = attrs->ufile; ufile 206 drivers/infiniband/core/rdma_core.c down_read(&ufile->hw_destroy_rwsem); ufile 226 drivers/infiniband/core/rdma_core.c up_read(&ufile->hw_destroy_rwsem); ufile 241 drivers/infiniband/core/rdma_core.c uobj = rdma_lookup_get_uobject(obj, attrs->ufile, id, ufile 272 drivers/infiniband/core/rdma_core.c static struct ib_uobject *alloc_uobj(struct ib_uverbs_file *ufile, ufile 278 drivers/infiniband/core/rdma_core.c ucontext = ib_uverbs_get_ucontext_file(ufile); ufile 289 drivers/infiniband/core/rdma_core.c uobj->ufile = ufile; ufile 311 drivers/infiniband/core/rdma_core.c return xa_alloc(&uobj->ufile->idr, &uobj->id, NULL, xa_limit_32b, ufile 318 drivers/infiniband/core/rdma_core.c struct ib_uverbs_file *ufile, s64 id, ufile 333 drivers/infiniband/core/rdma_core.c uobj = xa_load(&ufile->idr, id); ufile 342 drivers/infiniband/core/rdma_core.c struct ib_uverbs_file *ufile, s64 id, ufile 371 drivers/infiniband/core/rdma_core.c if (f->f_op != fd_type->fops || uobject->ufile != ufile) { ufile 381 drivers/infiniband/core/rdma_core.c struct ib_uverbs_file *ufile, s64 id, ufile 390 drivers/infiniband/core/rdma_core.c uobj = lookup_get_idr_uobject(NULL, ufile, id, mode); ufile 397 drivers/infiniband/core/rdma_core.c uobj = obj->type_class->lookup_get(obj, ufile, id, mode); ufile 412 drivers/infiniband/core/rdma_core.c !srcu_dereference(ufile->device->ib_dev, ufile 413 drivers/infiniband/core/rdma_core.c &ufile->device->disassociate_srcu)) { ufile 433 drivers/infiniband/core/rdma_core.c struct ib_uverbs_file *ufile) ufile 438 drivers/infiniband/core/rdma_core.c uobj = alloc_uobj(ufile, obj); ufile 454 drivers/infiniband/core/rdma_core.c xa_erase(&ufile->idr, uobj->id); ufile 462 drivers/infiniband/core/rdma_core.c struct ib_uverbs_file *ufile) ufile 471 drivers/infiniband/core/rdma_core.c uobj = alloc_uobj(ufile, obj); ufile 478 drivers/infiniband/core/rdma_core.c uobj->ufile = ufile; ufile 484 drivers/infiniband/core/rdma_core.c struct ib_uverbs_file *ufile, ufile 497 drivers/infiniband/core/rdma_core.c if (!down_read_trylock(&ufile->hw_destroy_rwsem)) ufile 500 drivers/infiniband/core/rdma_core.c ret = obj->type_class->alloc_begin(obj, ufile); ufile 502 drivers/infiniband/core/rdma_core.c up_read(&ufile->hw_destroy_rwsem); ufile 515 drivers/infiniband/core/rdma_core.c xa_erase(&uobj->ufile->idr, uobj->id); ufile 546 drivers/infiniband/core/rdma_core.c xa_erase(&uobj->ufile->idr, uobj->id); ufile 576 drivers/infiniband/core/rdma_core.c struct ib_uverbs_file *ufile = uobj->ufile; ufile 586 drivers/infiniband/core/rdma_core.c old = xa_store(&ufile->idr, uobj->id, uobj, GFP_KERNEL); ufile 615 drivers/infiniband/core/rdma_core.c kref_get(&uobj->ufile->ref); ufile 637 drivers/infiniband/core/rdma_core.c struct ib_uverbs_file *ufile = attrs->ufile; ufile 644 drivers/infiniband/core/rdma_core.c up_read(&ufile->hw_destroy_rwsem); ufile 650 drivers/infiniband/core/rdma_core.c spin_lock_irq(&ufile->uobjects_lock); ufile 651 drivers/infiniband/core/rdma_core.c list_add(&uobj->list, &ufile->uobjects); ufile 652 drivers/infiniband/core/rdma_core.c spin_unlock_irq(&ufile->uobjects_lock); ufile 658 drivers/infiniband/core/rdma_core.c up_read(&ufile->hw_destroy_rwsem); ufile 670 drivers/infiniband/core/rdma_core.c struct ib_uverbs_file *ufile = uobj->ufile; ufile 676 drivers/infiniband/core/rdma_core.c up_read(&ufile->hw_destroy_rwsem); ufile 719 drivers/infiniband/core/rdma_core.c void setup_ufile_idr_uobject(struct ib_uverbs_file *ufile) ufile 721 drivers/infiniband/core/rdma_core.c xa_init_flags(&ufile->idr, XA_FLAGS_ALLOC); ufile 724 drivers/infiniband/core/rdma_core.c void release_ufile_idr_uobject(struct ib_uverbs_file *ufile) ufile 737 drivers/infiniband/core/rdma_core.c xa_for_each(&ufile->idr, id, entry) { ufile 742 drivers/infiniband/core/rdma_core.c xa_destroy(&ufile->idr); ufile 773 drivers/infiniband/core/rdma_core.c struct ib_uverbs_file *ufile = uobj->ufile; ufile 776 drivers/infiniband/core/rdma_core.c .ufile = ufile, ufile 779 drivers/infiniband/core/rdma_core.c if (down_read_trylock(&ufile->hw_destroy_rwsem)) { ufile 788 drivers/infiniband/core/rdma_core.c up_read(&ufile->hw_destroy_rwsem); ufile 792 drivers/infiniband/core/rdma_core.c kref_put(&ufile->ref, ib_uverbs_release_file); ufile 803 drivers/infiniband/core/rdma_core.c static void ufile_destroy_ucontext(struct ib_uverbs_file *ufile, ufile 806 drivers/infiniband/core/rdma_core.c struct ib_ucontext *ucontext = ufile->ucontext; ufile 815 drivers/infiniband/core/rdma_core.c uverbs_user_mmap_disassociate(ufile); ufile 828 drivers/infiniband/core/rdma_core.c ufile->ucontext = NULL; ufile 831 drivers/infiniband/core/rdma_core.c static int __uverbs_cleanup_ufile(struct ib_uverbs_file *ufile, ufile 836 drivers/infiniband/core/rdma_core.c struct uverbs_attr_bundle attrs = { .ufile = ufile }; ufile 847 drivers/infiniband/core/rdma_core.c list_for_each_entry_safe(obj, next_obj, &ufile->uobjects, list) { ufile 870 drivers/infiniband/core/rdma_core.c void uverbs_destroy_ufile_hw(struct ib_uverbs_file *ufile, ufile 882 drivers/infiniband/core/rdma_core.c if (!mutex_trylock(&ufile->ucontext_lock)) ufile 886 drivers/infiniband/core/rdma_core.c mutex_lock(&ufile->ucontext_lock); ufile 889 drivers/infiniband/core/rdma_core.c down_write(&ufile->hw_destroy_rwsem); ufile 895 drivers/infiniband/core/rdma_core.c if (!ufile->ucontext) ufile 898 drivers/infiniband/core/rdma_core.c ufile->ucontext->closing = true; ufile 899 drivers/infiniband/core/rdma_core.c ufile->ucontext->cleanup_retryable = true; ufile 900 drivers/infiniband/core/rdma_core.c while (!list_empty(&ufile->uobjects)) ufile 901 drivers/infiniband/core/rdma_core.c if (__uverbs_cleanup_ufile(ufile, reason)) { ufile 909 drivers/infiniband/core/rdma_core.c ufile->ucontext->cleanup_retryable = false; ufile 910 drivers/infiniband/core/rdma_core.c if (!list_empty(&ufile->uobjects)) ufile 911 drivers/infiniband/core/rdma_core.c __uverbs_cleanup_ufile(ufile, reason); ufile 913 drivers/infiniband/core/rdma_core.c ufile_destroy_ucontext(ufile, reason); ufile 916 drivers/infiniband/core/rdma_core.c up_write(&ufile->hw_destroy_rwsem); ufile 917 drivers/infiniband/core/rdma_core.c mutex_unlock(&ufile->ucontext_lock); ufile 937 drivers/infiniband/core/rdma_core.c uapi_get_object(attrs->ufile->device->uapi, object_id); ufile 941 drivers/infiniband/core/rdma_core.c return rdma_lookup_get_uobject(obj, attrs->ufile, id, ufile 945 drivers/infiniband/core/rdma_core.c return rdma_lookup_get_uobject(obj, attrs->ufile, id, ufile 948 drivers/infiniband/core/rdma_core.c return rdma_lookup_get_uobject(obj, attrs->ufile, id, ufile 951 drivers/infiniband/core/rdma_core.c return rdma_alloc_begin_uobject(obj, attrs->ufile, attrs); ufile 48 drivers/infiniband/core/rdma_core.h void uverbs_destroy_ufile_hw(struct ib_uverbs_file *ufile, ufile 110 drivers/infiniband/core/rdma_core.h void setup_ufile_idr_uobject(struct ib_uverbs_file *ufile); ufile 111 drivers/infiniband/core/rdma_core.h void release_ufile_idr_uobject(struct ib_uverbs_file *ufile); ufile 190 drivers/infiniband/core/rdma_core.h void uverbs_user_mmap_disassociate(struct ib_uverbs_file *ufile); ufile 208 drivers/infiniband/core/uverbs_cmd.c struct ib_uverbs_file *file = attrs->ufile; ufile 250 drivers/infiniband/core/uverbs_cmd.c ucontext->ufile = file; ufile 558 drivers/infiniband/core/uverbs_cmd.c struct ib_uverbs_device *ibudev = attrs->ufile->device; ufile 685 drivers/infiniband/core/uverbs_cmd.c struct ib_uverbs_device *dev = attrs->ufile->device; ufile 995 drivers/infiniband/core/uverbs_cmd.c if (cmd->comp_vector >= attrs->ufile->device->num_comp_vectors) ufile 1062 drivers/infiniband/core/uverbs_cmd.c ib_uverbs_release_ucq(attrs->ufile, ev_file, obj); ufile 1376 drivers/infiniband/core/uverbs_cmd.c attr.qp_context = attrs->ufile; ufile 1584 drivers/infiniband/core/uverbs_cmd.c attr.qp_context = attrs->ufile; ufile 2929 drivers/infiniband/core/uverbs_cmd.c wq_init_attr.wq_context = attrs->ufile; ufile 3407 drivers/infiniband/core/uverbs_cmd.c attr.srq_context = attrs->ufile; ufile 430 drivers/infiniband/core/uverbs_ioctl.c &pbundle->bundle.ufile->device->disassociate_srcu); ufile 555 drivers/infiniband/core/uverbs_ioctl.c static int ib_uverbs_cmd_verbs(struct ib_uverbs_file *ufile, ufile 560 drivers/infiniband/core/uverbs_ioctl.c struct uverbs_api *uapi = ufile->device->uapi; ufile 597 drivers/infiniband/core/uverbs_ioctl.c pbundle->bundle.ufile = ufile; ufile 85 drivers/infiniband/core/uverbs_main.c struct ib_ucontext *ib_uverbs_get_ucontext_file(struct ib_uverbs_file *ufile) ufile 92 drivers/infiniband/core/uverbs_main.c struct ib_ucontext *ucontext = smp_load_acquire(&ufile->ucontext); ufile 94 drivers/infiniband/core/uverbs_main.c if (!srcu_dereference(ufile->device->ib_dev, ufile 95 drivers/infiniband/core/uverbs_main.c &ufile->device->disassociate_srcu)) ufile 491 drivers/infiniband/core/uverbs_main.c ib_uverbs_async_handler(uobj->uobject.ufile, uobj->uobject.user_handle, ufile 703 drivers/infiniband/core/uverbs_main.c bundle.ufile = file; ufile 814 drivers/infiniband/core/uverbs_main.c struct ib_uverbs_file *ufile = vma->vm_file->private_data; ufile 820 drivers/infiniband/core/uverbs_main.c mutex_lock(&ufile->umap_lock); ufile 821 drivers/infiniband/core/uverbs_main.c list_add(&priv->list, &ufile->umaps); ufile 822 drivers/infiniband/core/uverbs_main.c mutex_unlock(&ufile->umap_lock); ufile 831 drivers/infiniband/core/uverbs_main.c struct ib_uverbs_file *ufile = vma->vm_file->private_data; ufile 839 drivers/infiniband/core/uverbs_main.c if (!down_read_trylock(&ufile->hw_destroy_rwsem)) ufile 844 drivers/infiniband/core/uverbs_main.c if (!ufile->ucontext) ufile 852 drivers/infiniband/core/uverbs_main.c up_read(&ufile->hw_destroy_rwsem); ufile 856 drivers/infiniband/core/uverbs_main.c up_read(&ufile->hw_destroy_rwsem); ufile 869 drivers/infiniband/core/uverbs_main.c struct ib_uverbs_file *ufile = vma->vm_file->private_data; ufile 880 drivers/infiniband/core/uverbs_main.c mutex_lock(&ufile->umap_lock); ufile 882 drivers/infiniband/core/uverbs_main.c mutex_unlock(&ufile->umap_lock); ufile 892 drivers/infiniband/core/uverbs_main.c struct ib_uverbs_file *ufile = vmf->vma->vm_file->private_data; ufile 906 drivers/infiniband/core/uverbs_main.c mutex_lock(&ufile->umap_lock); ufile 907 drivers/infiniband/core/uverbs_main.c if (!ufile->disassociate_page) ufile 908 drivers/infiniband/core/uverbs_main.c ufile->disassociate_page = ufile 911 drivers/infiniband/core/uverbs_main.c if (ufile->disassociate_page) { ufile 916 drivers/infiniband/core/uverbs_main.c vmf->page = ufile->disassociate_page; ufile 921 drivers/infiniband/core/uverbs_main.c mutex_unlock(&ufile->umap_lock); ufile 940 drivers/infiniband/core/uverbs_main.c struct ib_uverbs_file *ufile = ucontext->ufile; ufile 951 drivers/infiniband/core/uverbs_main.c vma->vm_file->private_data != ufile)) ufile 953 drivers/infiniband/core/uverbs_main.c lockdep_assert_held(&ufile->device->disassociate_srcu); ufile 970 drivers/infiniband/core/uverbs_main.c void uverbs_user_mmap_disassociate(struct ib_uverbs_file *ufile) ufile 974 drivers/infiniband/core/uverbs_main.c lockdep_assert_held(&ufile->hw_destroy_rwsem); ufile 980 drivers/infiniband/core/uverbs_main.c mutex_lock(&ufile->umap_lock); ufile 981 drivers/infiniband/core/uverbs_main.c while (!list_empty(&ufile->umaps)) { ufile 984 drivers/infiniband/core/uverbs_main.c priv = list_first_entry(&ufile->umaps, ufile 995 drivers/infiniband/core/uverbs_main.c mutex_unlock(&ufile->umap_lock); ufile 1008 drivers/infiniband/core/uverbs_main.c mutex_lock(&ufile->umap_lock); ufile 1009 drivers/infiniband/core/uverbs_main.c list_for_each_entry_safe (priv, next_priv, &ufile->umaps, ufile 1020 drivers/infiniband/core/uverbs_main.c mutex_unlock(&ufile->umap_lock); ufile 108 drivers/infiniband/core/uverbs_std_types.c ib_uverbs_release_uevent(attrs->ufile, &uqp->uevent); ufile 141 drivers/infiniband/core/uverbs_std_types.c ib_uverbs_release_uevent(attrs->ufile, &uwq->uevent); ufile 166 drivers/infiniband/core/uverbs_std_types.c ib_uverbs_release_uevent(attrs->ufile, uevent); ufile 183 drivers/infiniband/core/uverbs_std_types.c mutex_lock(&attrs->ufile->device->xrcd_tree_mutex); ufile 185 drivers/infiniband/core/uverbs_std_types.c mutex_unlock(&attrs->ufile->device->xrcd_tree_mutex); ufile 52 drivers/infiniband/core/uverbs_std_types_cq.c attrs->ufile, ufile 104 drivers/infiniband/core/uverbs_std_types_cq.c if (attr.comp_vector >= attrs->ufile->device->num_comp_vectors) { ufile 21 drivers/infiniband/core/uverbs_std_types_device.c struct uverbs_api *uapi = attrs->ufile->device->uapi; ufile 57 drivers/infiniband/core/uverbs_std_types_device.c gather_objects_handle(struct ib_uverbs_file *ufile, ufile 75 drivers/infiniband/core/uverbs_std_types_device.c spin_lock_irq(&ufile->uobjects_lock); ufile 76 drivers/infiniband/core/uverbs_std_types_device.c list_for_each_entry(obj, &ufile->uobjects, list) { ufile 88 drivers/infiniband/core/uverbs_std_types_device.c spin_unlock_irq(&ufile->uobjects_lock); ufile 112 drivers/infiniband/core/uverbs_std_types_device.c uapi_object = uapi_get_object(attrs->ufile->device->uapi, object_id); ufile 116 drivers/infiniband/core/uverbs_std_types_device.c handles = gather_objects_handle(attrs->ufile, uapi_object, attrs, ufile 1459 include/rdma/ib_verbs.h struct ib_uverbs_file *ufile; ufile 1479 include/rdma/ib_verbs.h struct ib_uverbs_file *ufile; ufile 4598 include/rdma/ib_verbs.h struct ib_ucontext *ib_uverbs_get_ucontext_file(struct ib_uverbs_file *ufile); ufile 654 include/rdma/uverbs_ioctl.h struct ib_uverbs_file *ufile; ufile 865 include/rdma/uverbs_ioctl.h return ib_uverbs_get_ucontext_file(attrs->ufile); ufile 49 include/rdma/uverbs_std_types.h uapi_get_object((_attrs)->ufile->device->uapi, _object) ufile 52 include/rdma/uverbs_std_types.h rdma_lookup_get_uobject(uobj_get_type(_attrs, _type), (_attrs)->ufile, \ ufile 57 include/rdma/uverbs_std_types.h rdma_lookup_get_uobject(uobj_get_type(_attrs, _type), (_attrs)->ufile, \ ufile 72 include/rdma/uverbs_std_types.h rdma_lookup_get_uobject(uobj_get_type(_attrs, _type), (_attrs)->ufile, \ ufile 128 include/rdma/uverbs_std_types.h rdma_alloc_begin_uobject(obj, attrs->ufile, attrs); ufile 86 include/rdma/uverbs_types.h struct ib_uverbs_file *ufile); ufile 93 include/rdma/uverbs_types.h struct ib_uverbs_file *ufile, s64 id, ufile 135 include/rdma/uverbs_types.h struct ib_uverbs_file *ufile, s64 id, ufile 141 include/rdma/uverbs_types.h struct ib_uverbs_file *ufile,