uobj 220 drivers/gpu/drm/udl/udl_dmabuf.c struct udl_gem_object *uobj; uobj 239 drivers/gpu/drm/udl/udl_dmabuf.c ret = udl_prime_create(dev, dma_buf->size, sg, &uobj); uobj 243 drivers/gpu/drm/udl/udl_dmabuf.c uobj->base.import_attach = attach; uobj 244 drivers/gpu/drm/udl/udl_dmabuf.c uobj->flags = UDL_BO_WC; uobj 246 drivers/gpu/drm/udl/udl_dmabuf.c return &uobj->base; uobj 324 drivers/infiniband/core/core_priv.h struct ib_uobject *uobj) uobj 339 drivers/infiniband/core/core_priv.h qp->uobject = uobj; uobj 364 drivers/infiniband/core/core_priv.h if (uobj) uobj 52 drivers/infiniband/core/rdma_core.c struct ib_uobject *uobj = uobj 55 drivers/infiniband/core/rdma_core.c if (uobj->uapi_object->type_class->needs_kfree_rcu) uobj 56 drivers/infiniband/core/rdma_core.c kfree_rcu(uobj, rcu); uobj 58 drivers/infiniband/core/rdma_core.c kfree(uobj); uobj 66 drivers/infiniband/core/rdma_core.c static int uverbs_try_lock_object(struct ib_uobject *uobj, uobj 82 drivers/infiniband/core/rdma_core.c return atomic_fetch_add_unless(&uobj->usecnt, 1, -1) == -1 ? uobj 86 drivers/infiniband/core/rdma_core.c return atomic_cmpxchg(&uobj->usecnt, 0, -1) == 0 ? 0 : -EBUSY; uobj 93 drivers/infiniband/core/rdma_core.c static void assert_uverbs_usecnt(struct ib_uobject *uobj, uobj 99 drivers/infiniband/core/rdma_core.c WARN_ON(atomic_read(&uobj->usecnt) <= 0); uobj 102 drivers/infiniband/core/rdma_core.c WARN_ON(atomic_read(&uobj->usecnt) != -1); uobj 127 drivers/infiniband/core/rdma_core.c static int uverbs_destroy_uobject(struct ib_uobject *uobj, uobj 136 drivers/infiniband/core/rdma_core.c assert_uverbs_usecnt(uobj, UVERBS_LOOKUP_WRITE); uobj 138 drivers/infiniband/core/rdma_core.c if (uobj->object) { uobj 139 drivers/infiniband/core/rdma_core.c ret = uobj->uapi_object->type_class->destroy_hw(uobj, reason, uobj 142 drivers/infiniband/core/rdma_core.c if (ib_is_destroy_retryable(ret, reason, uobj)) uobj 148 drivers/infiniband/core/rdma_core.c uobj->id, ret); uobj 151 drivers/infiniband/core/rdma_core.c uobj->object = NULL; uobj 155 drivers/infiniband/core/rdma_core.c WARN_ON(!list_empty(&uobj->list)); uobj 156 drivers/infiniband/core/rdma_core.c WARN_ON(!uobj->context); uobj 157 drivers/infiniband/core/rdma_core.c uobj->uapi_object->type_class->alloc_abort(uobj); uobj 160 drivers/infiniband/core/rdma_core.c uobj->context = NULL; uobj 168 drivers/infiniband/core/rdma_core.c atomic_set(&uobj->usecnt, 0); uobj 170 drivers/infiniband/core/rdma_core.c uobj->uapi_object->type_class->remove_handle(uobj); uobj 172 drivers/infiniband/core/rdma_core.c if (!list_empty(&uobj->list)) { uobj 174 drivers/infiniband/core/rdma_core.c list_del_init(&uobj->list); uobj 181 drivers/infiniband/core/rdma_core.c uverbs_uobject_put(uobj); uobj 189 drivers/infiniband/core/rdma_core.c uverbs_uobject_put(uobj); uobj 201 drivers/infiniband/core/rdma_core.c int uobj_destroy(struct ib_uobject *uobj, struct uverbs_attr_bundle *attrs) uobj 215 drivers/infiniband/core/rdma_core.c ret = uverbs_try_lock_object(uobj, UVERBS_LOOKUP_WRITE); uobj 219 drivers/infiniband/core/rdma_core.c ret = uverbs_destroy_uobject(uobj, RDMA_REMOVE_DESTROY, attrs); uobj 221 drivers/infiniband/core/rdma_core.c atomic_set(&uobj->usecnt, 0); uobj 238 drivers/infiniband/core/rdma_core.c struct ib_uobject *uobj; uobj 241 drivers/infiniband/core/rdma_core.c uobj = rdma_lookup_get_uobject(obj, attrs->ufile, id, uobj 243 drivers/infiniband/core/rdma_core.c if (IS_ERR(uobj)) uobj 244 drivers/infiniband/core/rdma_core.c return uobj; uobj 246 drivers/infiniband/core/rdma_core.c ret = uobj_destroy(uobj, attrs); uobj 248 drivers/infiniband/core/rdma_core.c rdma_lookup_put_uobject(uobj, UVERBS_LOOKUP_DESTROY); uobj 252 drivers/infiniband/core/rdma_core.c return uobj; uobj 262 drivers/infiniband/core/rdma_core.c struct ib_uobject *uobj; uobj 264 drivers/infiniband/core/rdma_core.c uobj = __uobj_get_destroy(obj, id, attrs); uobj 265 drivers/infiniband/core/rdma_core.c if (IS_ERR(uobj)) uobj 266 drivers/infiniband/core/rdma_core.c return PTR_ERR(uobj); uobj 267 drivers/infiniband/core/rdma_core.c uobj_put_destroy(uobj); uobj 275 drivers/infiniband/core/rdma_core.c struct ib_uobject *uobj; uobj 282 drivers/infiniband/core/rdma_core.c uobj = kzalloc(obj->type_attrs->obj_size, GFP_KERNEL); uobj 283 drivers/infiniband/core/rdma_core.c if (!uobj) uobj 289 drivers/infiniband/core/rdma_core.c uobj->ufile = ufile; uobj 290 drivers/infiniband/core/rdma_core.c uobj->context = ucontext; uobj 291 drivers/infiniband/core/rdma_core.c INIT_LIST_HEAD(&uobj->list); uobj 292 drivers/infiniband/core/rdma_core.c uobj->uapi_object = obj; uobj 298 drivers/infiniband/core/rdma_core.c atomic_set(&uobj->usecnt, -1); uobj 299 drivers/infiniband/core/rdma_core.c kref_init(&uobj->ref); uobj 301 drivers/infiniband/core/rdma_core.c return uobj; uobj 304 drivers/infiniband/core/rdma_core.c static int idr_add_uobj(struct ib_uobject *uobj) uobj 311 drivers/infiniband/core/rdma_core.c return xa_alloc(&uobj->ufile->idr, &uobj->id, NULL, xa_limit_32b, uobj 321 drivers/infiniband/core/rdma_core.c struct ib_uobject *uobj; uobj 333 drivers/infiniband/core/rdma_core.c uobj = xa_load(&ufile->idr, id); uobj 334 drivers/infiniband/core/rdma_core.c if (!uobj || !kref_get_unless_zero(&uobj->ref)) uobj 335 drivers/infiniband/core/rdma_core.c uobj = ERR_PTR(-ENOENT); uobj 337 drivers/infiniband/core/rdma_core.c return uobj; uobj 385 drivers/infiniband/core/rdma_core.c struct ib_uobject *uobj; uobj 390 drivers/infiniband/core/rdma_core.c uobj = lookup_get_idr_uobject(NULL, ufile, id, mode); uobj 391 drivers/infiniband/core/rdma_core.c if (IS_ERR(uobj)) uobj 392 drivers/infiniband/core/rdma_core.c return uobj; uobj 397 drivers/infiniband/core/rdma_core.c uobj = obj->type_class->lookup_get(obj, ufile, id, mode); uobj 398 drivers/infiniband/core/rdma_core.c if (IS_ERR(uobj)) uobj 399 drivers/infiniband/core/rdma_core.c return uobj; uobj 401 drivers/infiniband/core/rdma_core.c if (uobj->uapi_object != obj) { uobj 418 drivers/infiniband/core/rdma_core.c ret = uverbs_try_lock_object(uobj, mode); uobj 422 drivers/infiniband/core/rdma_core.c attrs->context = uobj->context; uobj 424 drivers/infiniband/core/rdma_core.c return uobj; uobj 426 drivers/infiniband/core/rdma_core.c uobj->uapi_object->type_class->lookup_put(uobj, mode); uobj 427 drivers/infiniband/core/rdma_core.c uverbs_uobject_put(uobj); uobj 436 drivers/infiniband/core/rdma_core.c struct ib_uobject *uobj; uobj 438 drivers/infiniband/core/rdma_core.c uobj = alloc_uobj(ufile, obj); uobj 439 drivers/infiniband/core/rdma_core.c if (IS_ERR(uobj)) uobj 440 drivers/infiniband/core/rdma_core.c return uobj; uobj 442 drivers/infiniband/core/rdma_core.c ret = idr_add_uobj(uobj); uobj 446 drivers/infiniband/core/rdma_core.c ret = ib_rdmacg_try_charge(&uobj->cg_obj, uobj->context->device, uobj 451 drivers/infiniband/core/rdma_core.c return uobj; uobj 454 drivers/infiniband/core/rdma_core.c xa_erase(&ufile->idr, uobj->id); uobj 456 drivers/infiniband/core/rdma_core.c uverbs_uobject_put(uobj); uobj 465 drivers/infiniband/core/rdma_core.c struct ib_uobject *uobj; uobj 471 drivers/infiniband/core/rdma_core.c uobj = alloc_uobj(ufile, obj); uobj 472 drivers/infiniband/core/rdma_core.c if (IS_ERR(uobj)) { uobj 474 drivers/infiniband/core/rdma_core.c return uobj; uobj 477 drivers/infiniband/core/rdma_core.c uobj->id = new_fd; uobj 478 drivers/infiniband/core/rdma_core.c uobj->ufile = ufile; uobj 480 drivers/infiniband/core/rdma_core.c return uobj; uobj 510 drivers/infiniband/core/rdma_core.c static void alloc_abort_idr_uobject(struct ib_uobject *uobj) uobj 512 drivers/infiniband/core/rdma_core.c ib_rdmacg_uncharge(&uobj->cg_obj, uobj->context->device, uobj 515 drivers/infiniband/core/rdma_core.c xa_erase(&uobj->ufile->idr, uobj->id); uobj 518 drivers/infiniband/core/rdma_core.c static int __must_check destroy_hw_idr_uobject(struct ib_uobject *uobj, uobj 523 drivers/infiniband/core/rdma_core.c container_of(uobj->uapi_object->type_attrs, uobj 525 drivers/infiniband/core/rdma_core.c int ret = idr_type->destroy_object(uobj, why, attrs); uobj 532 drivers/infiniband/core/rdma_core.c if (ib_is_destroy_retryable(ret, why, uobj)) uobj 538 drivers/infiniband/core/rdma_core.c ib_rdmacg_uncharge(&uobj->cg_obj, uobj->context->device, uobj 544 drivers/infiniband/core/rdma_core.c static void remove_handle_idr_uobject(struct ib_uobject *uobj) uobj 546 drivers/infiniband/core/rdma_core.c xa_erase(&uobj->ufile->idr, uobj->id); uobj 548 drivers/infiniband/core/rdma_core.c uverbs_uobject_put(uobj); uobj 551 drivers/infiniband/core/rdma_core.c static void alloc_abort_fd_uobject(struct ib_uobject *uobj) uobj 553 drivers/infiniband/core/rdma_core.c put_unused_fd(uobj->id); uobj 556 drivers/infiniband/core/rdma_core.c static int __must_check destroy_hw_fd_uobject(struct ib_uobject *uobj, uobj 561 drivers/infiniband/core/rdma_core.c uobj->uapi_object->type_attrs, struct uverbs_obj_fd_type, type); uobj 562 drivers/infiniband/core/rdma_core.c int ret = fd_type->context_closed(uobj, why); uobj 564 drivers/infiniband/core/rdma_core.c if (ib_is_destroy_retryable(ret, why, uobj)) uobj 570 drivers/infiniband/core/rdma_core.c static void remove_handle_fd_uobject(struct ib_uobject *uobj) uobj 574 drivers/infiniband/core/rdma_core.c static int alloc_commit_idr_uobject(struct ib_uobject *uobj) uobj 576 drivers/infiniband/core/rdma_core.c struct ib_uverbs_file *ufile = uobj->ufile; uobj 586 drivers/infiniband/core/rdma_core.c old = xa_store(&ufile->idr, uobj->id, uobj, GFP_KERNEL); uobj 592 drivers/infiniband/core/rdma_core.c static int alloc_commit_fd_uobject(struct ib_uobject *uobj) uobj 595 drivers/infiniband/core/rdma_core.c uobj->uapi_object->type_attrs, struct uverbs_obj_fd_type, type); uobj 596 drivers/infiniband/core/rdma_core.c int fd = uobj->id; uobj 607 drivers/infiniband/core/rdma_core.c uobj, uobj 612 drivers/infiniband/core/rdma_core.c uobj->object = filp; uobj 615 drivers/infiniband/core/rdma_core.c kref_get(&uobj->ufile->ref); uobj 618 drivers/infiniband/core/rdma_core.c uobj->id = 0; uobj 634 drivers/infiniband/core/rdma_core.c int __must_check rdma_alloc_commit_uobject(struct ib_uobject *uobj, uobj 641 drivers/infiniband/core/rdma_core.c ret = uobj->uapi_object->type_class->alloc_commit(uobj); uobj 643 drivers/infiniband/core/rdma_core.c uverbs_destroy_uobject(uobj, RDMA_REMOVE_ABORT, attrs); uobj 649 drivers/infiniband/core/rdma_core.c uverbs_uobject_get(uobj); uobj 651 drivers/infiniband/core/rdma_core.c list_add(&uobj->list, &ufile->uobjects); uobj 655 drivers/infiniband/core/rdma_core.c atomic_set(&uobj->usecnt, 0); uobj 667 drivers/infiniband/core/rdma_core.c void rdma_alloc_abort_uobject(struct ib_uobject *uobj, uobj 670 drivers/infiniband/core/rdma_core.c struct ib_uverbs_file *ufile = uobj->ufile; uobj 672 drivers/infiniband/core/rdma_core.c uobj->object = NULL; uobj 673 drivers/infiniband/core/rdma_core.c uverbs_destroy_uobject(uobj, RDMA_REMOVE_ABORT, attrs); uobj 679 drivers/infiniband/core/rdma_core.c static void lookup_put_idr_uobject(struct ib_uobject *uobj, uobj 684 drivers/infiniband/core/rdma_core.c static void lookup_put_fd_uobject(struct ib_uobject *uobj, uobj 687 drivers/infiniband/core/rdma_core.c struct file *filp = uobj->object; uobj 694 drivers/infiniband/core/rdma_core.c void rdma_lookup_put_uobject(struct ib_uobject *uobj, uobj 697 drivers/infiniband/core/rdma_core.c assert_uverbs_usecnt(uobj, mode); uobj 705 drivers/infiniband/core/rdma_core.c atomic_dec(&uobj->usecnt); uobj 708 drivers/infiniband/core/rdma_core.c atomic_set(&uobj->usecnt, 0); uobj 714 drivers/infiniband/core/rdma_core.c uobj->uapi_object->type_class->lookup_put(uobj, mode); uobj 716 drivers/infiniband/core/rdma_core.c uverbs_uobject_put(uobj); uobj 772 drivers/infiniband/core/rdma_core.c struct ib_uobject *uobj = f->private_data; uobj 773 drivers/infiniband/core/rdma_core.c struct ib_uverbs_file *ufile = uobj->ufile; uobj 775 drivers/infiniband/core/rdma_core.c .context = uobj->context, uobj 786 drivers/infiniband/core/rdma_core.c WARN_ON(uverbs_try_lock_object(uobj, UVERBS_LOOKUP_WRITE)); uobj 787 drivers/infiniband/core/rdma_core.c uverbs_destroy_uobject(uobj, RDMA_REMOVE_CLOSE, &attrs); uobj 795 drivers/infiniband/core/rdma_core.c uverbs_uobject_put(uobj); uobj 958 drivers/infiniband/core/rdma_core.c int uverbs_finalize_object(struct ib_uobject *uobj, uobj 972 drivers/infiniband/core/rdma_core.c rdma_lookup_put_uobject(uobj, UVERBS_LOOKUP_READ); uobj 975 drivers/infiniband/core/rdma_core.c rdma_lookup_put_uobject(uobj, UVERBS_LOOKUP_WRITE); uobj 978 drivers/infiniband/core/rdma_core.c if (uobj) uobj 979 drivers/infiniband/core/rdma_core.c rdma_lookup_put_uobject(uobj, UVERBS_LOOKUP_DESTROY); uobj 983 drivers/infiniband/core/rdma_core.c ret = rdma_alloc_commit_uobject(uobj, attrs); uobj 985 drivers/infiniband/core/rdma_core.c rdma_alloc_abort_uobject(uobj, attrs); uobj 51 drivers/infiniband/core/rdma_core.h int uobj_destroy(struct ib_uobject *uobj, struct uverbs_attr_bundle *attrs); uobj 104 drivers/infiniband/core/rdma_core.h int uverbs_finalize_object(struct ib_uobject *uobj, uobj 134 drivers/infiniband/core/uverbs.h struct ib_uobject uobj; uobj 229 drivers/infiniband/core/uverbs.h struct ib_ucq_object *uobj); uobj 231 drivers/infiniband/core/uverbs.h struct ib_uevent_object *uobj); uobj 247 drivers/infiniband/core/uverbs.h struct ib_uqp_object *uobj); uobj 191 drivers/infiniband/core/uverbs_cmd.c struct ib_uobject *uobj = ufd_get_read(UVERBS_OBJECT_COMP_CHANNEL, uobj 194 drivers/infiniband/core/uverbs_cmd.c if (IS_ERR(uobj)) uobj 195 drivers/infiniband/core/uverbs_cmd.c return (void *)uobj; uobj 197 drivers/infiniband/core/uverbs_cmd.c uverbs_uobject_get(uobj); uobj 198 drivers/infiniband/core/uverbs_cmd.c uobj_put_read(uobj); uobj 200 drivers/infiniband/core/uverbs_cmd.c return container_of(uobj, struct ib_uverbs_completion_event_file, uobj 201 drivers/infiniband/core/uverbs_cmd.c uobj); uobj 409 drivers/infiniband/core/uverbs_cmd.c struct ib_uobject *uobj; uobj 418 drivers/infiniband/core/uverbs_cmd.c uobj = uobj_alloc(UVERBS_OBJECT_PD, attrs, &ib_dev); uobj 419 drivers/infiniband/core/uverbs_cmd.c if (IS_ERR(uobj)) uobj 420 drivers/infiniband/core/uverbs_cmd.c return PTR_ERR(uobj); uobj 429 drivers/infiniband/core/uverbs_cmd.c pd->uobject = uobj; uobj 438 drivers/infiniband/core/uverbs_cmd.c uobj->object = pd; uobj 440 drivers/infiniband/core/uverbs_cmd.c resp.pd_handle = uobj->id; uobj 447 drivers/infiniband/core/uverbs_cmd.c return uobj_alloc_commit(uobj, attrs); uobj 455 drivers/infiniband/core/uverbs_cmd.c uobj_alloc_abort(uobj, attrs); uobj 708 drivers/infiniband/core/uverbs_cmd.c struct ib_uobject *uobj; uobj 725 drivers/infiniband/core/uverbs_cmd.c uobj = uobj_alloc(UVERBS_OBJECT_MR, attrs, &ib_dev); uobj 726 drivers/infiniband/core/uverbs_cmd.c if (IS_ERR(uobj)) uobj 727 drivers/infiniband/core/uverbs_cmd.c return PTR_ERR(uobj); uobj 757 drivers/infiniband/core/uverbs_cmd.c mr->uobject = uobj; uobj 762 drivers/infiniband/core/uverbs_cmd.c uobj->object = mr; uobj 767 drivers/infiniband/core/uverbs_cmd.c resp.mr_handle = uobj->id; uobj 775 drivers/infiniband/core/uverbs_cmd.c return uobj_alloc_commit(uobj, attrs); uobj 784 drivers/infiniband/core/uverbs_cmd.c uobj_alloc_abort(uobj, attrs); uobj 796 drivers/infiniband/core/uverbs_cmd.c struct ib_uobject *uobj; uobj 810 drivers/infiniband/core/uverbs_cmd.c uobj = uobj_get_write(UVERBS_OBJECT_MR, cmd.mr_handle, attrs); uobj 811 drivers/infiniband/core/uverbs_cmd.c if (IS_ERR(uobj)) uobj 812 drivers/infiniband/core/uverbs_cmd.c return PTR_ERR(uobj); uobj 814 drivers/infiniband/core/uverbs_cmd.c mr = uobj->object; uobj 861 drivers/infiniband/core/uverbs_cmd.c uobj_put_write(uobj); uobj 882 drivers/infiniband/core/uverbs_cmd.c struct ib_uobject *uobj; uobj 892 drivers/infiniband/core/uverbs_cmd.c uobj = uobj_alloc(UVERBS_OBJECT_MW, attrs, &ib_dev); uobj 893 drivers/infiniband/core/uverbs_cmd.c if (IS_ERR(uobj)) uobj 894 drivers/infiniband/core/uverbs_cmd.c return PTR_ERR(uobj); uobj 915 drivers/infiniband/core/uverbs_cmd.c mw->uobject = uobj; uobj 918 drivers/infiniband/core/uverbs_cmd.c uobj->object = mw; uobj 922 drivers/infiniband/core/uverbs_cmd.c resp.mw_handle = uobj->id; uobj 929 drivers/infiniband/core/uverbs_cmd.c return uobj_alloc_commit(uobj, attrs); uobj 936 drivers/infiniband/core/uverbs_cmd.c uobj_alloc_abort(uobj, attrs); uobj 956 drivers/infiniband/core/uverbs_cmd.c struct ib_uobject *uobj; uobj 965 drivers/infiniband/core/uverbs_cmd.c uobj = uobj_alloc(UVERBS_OBJECT_COMP_CHANNEL, attrs, &ib_dev); uobj 966 drivers/infiniband/core/uverbs_cmd.c if (IS_ERR(uobj)) uobj 967 drivers/infiniband/core/uverbs_cmd.c return PTR_ERR(uobj); uobj 969 drivers/infiniband/core/uverbs_cmd.c resp.fd = uobj->id; uobj 971 drivers/infiniband/core/uverbs_cmd.c ev_file = container_of(uobj, struct ib_uverbs_completion_event_file, uobj 972 drivers/infiniband/core/uverbs_cmd.c uobj); uobj 977 drivers/infiniband/core/uverbs_cmd.c uobj_alloc_abort(uobj, attrs); uobj 981 drivers/infiniband/core/uverbs_cmd.c return uobj_alloc_commit(uobj, attrs); uobj 1247 drivers/infiniband/core/uverbs_cmd.c struct ib_uobject *uobj; uobj 1255 drivers/infiniband/core/uverbs_cmd.c uobj = uobj_get_destroy(UVERBS_OBJECT_CQ, cmd.cq_handle, attrs); uobj 1256 drivers/infiniband/core/uverbs_cmd.c if (IS_ERR(uobj)) uobj 1257 drivers/infiniband/core/uverbs_cmd.c return PTR_ERR(uobj); uobj 1259 drivers/infiniband/core/uverbs_cmd.c obj = container_of(uobj, struct ib_ucq_object, uobject); uobj 1264 drivers/infiniband/core/uverbs_cmd.c uobj_put_destroy(uobj); uobj 1968 drivers/infiniband/core/uverbs_cmd.c struct ib_uobject *uobj; uobj 1976 drivers/infiniband/core/uverbs_cmd.c uobj = uobj_get_destroy(UVERBS_OBJECT_QP, cmd.qp_handle, attrs); uobj 1977 drivers/infiniband/core/uverbs_cmd.c if (IS_ERR(uobj)) uobj 1978 drivers/infiniband/core/uverbs_cmd.c return PTR_ERR(uobj); uobj 1980 drivers/infiniband/core/uverbs_cmd.c obj = container_of(uobj, struct ib_uqp_object, uevent.uobject); uobj 1984 drivers/infiniband/core/uverbs_cmd.c uobj_put_destroy(uobj); uobj 2395 drivers/infiniband/core/uverbs_cmd.c struct ib_uobject *uobj; uobj 2406 drivers/infiniband/core/uverbs_cmd.c uobj = uobj_alloc(UVERBS_OBJECT_AH, attrs, &ib_dev); uobj 2407 drivers/infiniband/core/uverbs_cmd.c if (IS_ERR(uobj)) uobj 2408 drivers/infiniband/core/uverbs_cmd.c return PTR_ERR(uobj); uobj 2445 drivers/infiniband/core/uverbs_cmd.c ah->uobject = uobj; uobj 2446 drivers/infiniband/core/uverbs_cmd.c uobj->user_handle = cmd.user_handle; uobj 2447 drivers/infiniband/core/uverbs_cmd.c uobj->object = ah; uobj 2449 drivers/infiniband/core/uverbs_cmd.c resp.ah_handle = uobj->id; uobj 2456 drivers/infiniband/core/uverbs_cmd.c return uobj_alloc_commit(uobj, attrs); uobj 2466 drivers/infiniband/core/uverbs_cmd.c uobj_alloc_abort(uobj, attrs); uobj 2985 drivers/infiniband/core/uverbs_cmd.c struct ib_uobject *uobj; uobj 2997 drivers/infiniband/core/uverbs_cmd.c uobj = uobj_get_destroy(UVERBS_OBJECT_WQ, cmd.wq_handle, attrs); uobj 2998 drivers/infiniband/core/uverbs_cmd.c if (IS_ERR(uobj)) uobj 2999 drivers/infiniband/core/uverbs_cmd.c return PTR_ERR(uobj); uobj 3001 drivers/infiniband/core/uverbs_cmd.c obj = container_of(uobj, struct ib_uwq_object, uevent.uobject); uobj 3004 drivers/infiniband/core/uverbs_cmd.c uobj_put_destroy(uobj); uobj 3046 drivers/infiniband/core/uverbs_cmd.c struct ib_uobject *uobj; uobj 3101 drivers/infiniband/core/uverbs_cmd.c uobj = uobj_alloc(UVERBS_OBJECT_RWQ_IND_TBL, attrs, &ib_dev); uobj 3102 drivers/infiniband/core/uverbs_cmd.c if (IS_ERR(uobj)) { uobj 3103 drivers/infiniband/core/uverbs_cmd.c err = PTR_ERR(uobj); uobj 3120 drivers/infiniband/core/uverbs_cmd.c rwq_ind_tbl->uobject = uobj; uobj 3121 drivers/infiniband/core/uverbs_cmd.c uobj->object = rwq_ind_tbl; uobj 3128 drivers/infiniband/core/uverbs_cmd.c resp.ind_tbl_handle = uobj->id; uobj 3141 drivers/infiniband/core/uverbs_cmd.c return uobj_alloc_commit(uobj, attrs); uobj 3146 drivers/infiniband/core/uverbs_cmd.c uobj_alloc_abort(uobj, attrs); uobj 3176 drivers/infiniband/core/uverbs_cmd.c struct ib_uobject *uobj; uobj 3237 drivers/infiniband/core/uverbs_cmd.c uobj = uobj_alloc(UVERBS_OBJECT_FLOW, attrs, &ib_dev); uobj 3238 drivers/infiniband/core/uverbs_cmd.c if (IS_ERR(uobj)) { uobj 3239 drivers/infiniband/core/uverbs_cmd.c err = PTR_ERR(uobj); uobj 3306 drivers/infiniband/core/uverbs_cmd.c ib_set_flow(uobj, flow_id, qp, qp->device, uflow_res); uobj 3309 drivers/infiniband/core/uverbs_cmd.c resp.flow_handle = uobj->id; uobj 3319 drivers/infiniband/core/uverbs_cmd.c return uobj_alloc_commit(uobj, attrs); uobj 3330 drivers/infiniband/core/uverbs_cmd.c uobj_alloc_abort(uobj, attrs); uobj 3589 drivers/infiniband/core/uverbs_cmd.c struct ib_uobject *uobj; uobj 3597 drivers/infiniband/core/uverbs_cmd.c uobj = uobj_get_destroy(UVERBS_OBJECT_SRQ, cmd.srq_handle, attrs); uobj 3598 drivers/infiniband/core/uverbs_cmd.c if (IS_ERR(uobj)) uobj 3599 drivers/infiniband/core/uverbs_cmd.c return PTR_ERR(uobj); uobj 3601 drivers/infiniband/core/uverbs_cmd.c obj = container_of(uobj, struct ib_uevent_object, uobject); uobj 3605 drivers/infiniband/core/uverbs_cmd.c uobj_put_destroy(uobj); uobj 138 drivers/infiniband/core/uverbs_main.c struct ib_ucq_object *uobj) uobj 144 drivers/infiniband/core/uverbs_main.c list_for_each_entry_safe(evt, tmp, &uobj->comp_list, obj_list) { uobj 150 drivers/infiniband/core/uverbs_main.c uverbs_uobject_put(&ev_file->uobj); uobj 154 drivers/infiniband/core/uverbs_main.c list_for_each_entry_safe(evt, tmp, &uobj->async_list, obj_list) { uobj 162 drivers/infiniband/core/uverbs_main.c struct ib_uevent_object *uobj) uobj 167 drivers/infiniband/core/uverbs_main.c list_for_each_entry_safe(evt, tmp, &uobj->event_list, obj_list) { uobj 175 drivers/infiniband/core/uverbs_main.c struct ib_uqp_object *uobj) uobj 179 drivers/infiniband/core/uverbs_main.c list_for_each_entry_safe(mcast, tmp, &uobj->mcast_list, list) { uobj 380 drivers/infiniband/core/uverbs_main.c struct ib_uobject *uobj = filp->private_data; uobj 382 drivers/infiniband/core/uverbs_main.c uobj, struct ib_uverbs_completion_event_file, uobj); uobj 420 drivers/infiniband/core/uverbs_main.c struct ib_ucq_object *uobj; uobj 439 drivers/infiniband/core/uverbs_main.c uobj = container_of(cq->uobject, struct ib_ucq_object, uobject); uobj 442 drivers/infiniband/core/uverbs_main.c entry->counter = &uobj->comp_events_reported; uobj 445 drivers/infiniband/core/uverbs_main.c list_add_tail(&entry->obj_list, &uobj->comp_list); uobj 488 drivers/infiniband/core/uverbs_main.c struct ib_ucq_object *uobj = container_of(event->element.cq->uobject, uobj 491 drivers/infiniband/core/uverbs_main.c ib_uverbs_async_handler(uobj->uobject.ufile, uobj->uobject.user_handle, uobj 492 drivers/infiniband/core/uverbs_main.c event->event, &uobj->async_list, uobj 493 drivers/infiniband/core/uverbs_main.c &uobj->async_events_reported); uobj 498 drivers/infiniband/core/uverbs_main.c struct ib_uevent_object *uobj; uobj 504 drivers/infiniband/core/uverbs_main.c uobj = container_of(event->element.qp->uobject, uobj 507 drivers/infiniband/core/uverbs_main.c ib_uverbs_async_handler(context_ptr, uobj->uobject.user_handle, uobj 508 drivers/infiniband/core/uverbs_main.c event->event, &uobj->event_list, uobj 509 drivers/infiniband/core/uverbs_main.c &uobj->events_reported); uobj 514 drivers/infiniband/core/uverbs_main.c struct ib_uevent_object *uobj = container_of(event->element.wq->uobject, uobj 517 drivers/infiniband/core/uverbs_main.c ib_uverbs_async_handler(context_ptr, uobj->uobject.user_handle, uobj 518 drivers/infiniband/core/uverbs_main.c event->event, &uobj->event_list, uobj 519 drivers/infiniband/core/uverbs_main.c &uobj->events_reported); uobj 524 drivers/infiniband/core/uverbs_main.c struct ib_uevent_object *uobj; uobj 526 drivers/infiniband/core/uverbs_main.c uobj = container_of(event->element.srq->uobject, uobj 529 drivers/infiniband/core/uverbs_main.c ib_uverbs_async_handler(context_ptr, uobj->uobject.user_handle, uobj 530 drivers/infiniband/core/uverbs_main.c event->event, &uobj->event_list, uobj 531 drivers/infiniband/core/uverbs_main.c &uobj->events_reported); uobj 205 drivers/infiniband/core/uverbs_std_types.c static int uverbs_hot_unplug_completion_event_file(struct ib_uobject *uobj, uobj 209 drivers/infiniband/core/uverbs_std_types.c container_of(uobj, struct ib_uverbs_completion_event_file, uobj 210 drivers/infiniband/core/uverbs_std_types.c uobj); uobj 55 drivers/infiniband/core/uverbs_std_types_counters.c struct ib_uobject *uobj = uverbs_attr_get_uobject( uobj 76 drivers/infiniband/core/uverbs_std_types_counters.c counters->uobject = uobj; uobj 77 drivers/infiniband/core/uverbs_std_types_counters.c uobj->object = counters; uobj 100 drivers/infiniband/core/uverbs_std_types_cq.c uobj); uobj 182 drivers/infiniband/core/uverbs_std_types_cq.c struct ib_uobject *uobj = uobj 185 drivers/infiniband/core/uverbs_std_types_cq.c container_of(uobj, struct ib_ucq_object, uobject); uobj 55 drivers/infiniband/core/uverbs_std_types_dm.c struct ib_uobject *uobj = uobj 81 drivers/infiniband/core/uverbs_std_types_dm.c dm->uobject = uobj; uobj 84 drivers/infiniband/core/uverbs_std_types_dm.c uobj->object = dm; uobj 311 drivers/infiniband/core/uverbs_std_types_flow_action.c struct ib_uobject *uobj = uverbs_attr_get_uobject( uobj 331 drivers/infiniband/core/uverbs_std_types_flow_action.c uverbs_flow_action_fill_action(action, uobj, ib_dev, uobj 340 drivers/infiniband/core/uverbs_std_types_flow_action.c struct ib_uobject *uobj = uverbs_attr_get_uobject( uobj 342 drivers/infiniband/core/uverbs_std_types_flow_action.c struct ib_flow_action *action = uobj->object; uobj 85 drivers/infiniband/core/uverbs_std_types_mr.c struct ib_uobject *uobj = uobj 133 drivers/infiniband/core/uverbs_std_types_mr.c mr->uobject = uobj; uobj 137 drivers/infiniband/core/uverbs_std_types_mr.c uobj->object = mr; uobj 80 drivers/infiniband/hw/mlx5/devx.c struct ib_uobject uobj; uobj 568 drivers/infiniband/hw/mlx5/devx.c struct ib_uobject *uobj, const void *in) uobj 576 drivers/infiniband/hw/mlx5/devx.c switch (uobj_get_object_id(uobj)) { uobj 579 drivers/infiniband/hw/mlx5/devx.c to_mcq(uobj->object)->mcq.cqn) == uobj 584 drivers/infiniband/hw/mlx5/devx.c struct mlx5_core_srq *srq = &(to_msrq(uobj->object)->msrq); uobj 602 drivers/infiniband/hw/mlx5/devx.c to_msrq(uobj->object)->msrq.srqn) == uobj 608 drivers/infiniband/hw/mlx5/devx.c struct mlx5_ib_qp *qp = to_mqp(uobj->object); uobj 638 drivers/infiniband/hw/mlx5/devx.c to_mrwq(uobj->object)->core_qp.qpn) == uobj 643 drivers/infiniband/hw/mlx5/devx.c to_mrwq_ind_table(uobj->object)->rqtn) == uobj 647 drivers/infiniband/hw/mlx5/devx.c return ((struct devx_obj *)uobj->object)->obj_id == obj_id; uobj 1406 drivers/infiniband/hw/mlx5/devx.c struct ib_uobject *uobj = uverbs_attr_get_uobject( uobj 1466 drivers/infiniband/hw/mlx5/devx.c uobj->object = obj; uobj 1507 drivers/infiniband/hw/mlx5/devx.c struct ib_uobject *uobj = uverbs_attr_get_uobject(attrs, uobj 1526 drivers/infiniband/hw/mlx5/devx.c if (!devx_is_valid_obj_id(attrs, uobj, cmd_in)) uobj 1552 drivers/infiniband/hw/mlx5/devx.c struct ib_uobject *uobj = uverbs_attr_get_uobject(attrs, uobj 1571 drivers/infiniband/hw/mlx5/devx.c if (!devx_is_valid_obj_id(attrs, uobj, cmd_in)) uobj 1598 drivers/infiniband/hw/mlx5/devx.c struct ib_uobject uobj; uobj 1617 drivers/infiniband/hw/mlx5/devx.c struct ib_uobject *uobj = uverbs_attr_get_uobject( uobj 1621 drivers/infiniband/hw/mlx5/devx.c ev_file = container_of(uobj, struct devx_async_cmd_event_file, uobj 1622 drivers/infiniband/hw/mlx5/devx.c uobj); uobj 1631 drivers/infiniband/hw/mlx5/devx.c struct ib_uobject *uobj = uverbs_attr_get_uobject( uobj 1647 drivers/infiniband/hw/mlx5/devx.c ev_file = container_of(uobj, struct devx_async_event_file, uobj 1648 drivers/infiniband/hw/mlx5/devx.c uobj); uobj 1670 drivers/infiniband/hw/mlx5/devx.c uobj); uobj 1688 drivers/infiniband/hw/mlx5/devx.c struct ib_uobject *uobj = uverbs_attr_get_uobject( uobj 1716 drivers/infiniband/hw/mlx5/devx.c if (!devx_is_valid_obj_id(attrs, uobj, cmd_in)) uobj 1725 drivers/infiniband/hw/mlx5/devx.c uobj); uobj 1956 drivers/infiniband/hw/mlx5/devx.c uobj); uobj 2178 drivers/infiniband/hw/mlx5/devx.c struct ib_uobject *uobj = uverbs_attr_get_uobject( uobj 2210 drivers/infiniband/hw/mlx5/devx.c uobj->object = obj; uobj 2501 drivers/infiniband/hw/mlx5/devx.c struct ib_uobject *uobj = filp->private_data; uobj 2503 drivers/infiniband/hw/mlx5/devx.c uobj, struct devx_async_cmd_event_file, uobj); uobj 2687 drivers/infiniband/hw/mlx5/devx.c static int devx_hot_unplug_async_cmd_event_file(struct ib_uobject *uobj, uobj 2691 drivers/infiniband/hw/mlx5/devx.c container_of(uobj, struct devx_async_cmd_event_file, uobj 2692 drivers/infiniband/hw/mlx5/devx.c uobj); uobj 2706 drivers/infiniband/hw/mlx5/devx.c static int devx_hot_unplug_async_event_file(struct ib_uobject *uobj, uobj 2710 drivers/infiniband/hw/mlx5/devx.c container_of(uobj, struct devx_async_event_file, uobj 2711 drivers/infiniband/hw/mlx5/devx.c uobj); uobj 83 drivers/infiniband/hw/mlx5/flow.c struct ib_uobject *uobj = uobj 206 drivers/infiniband/hw/mlx5/flow.c ib_set_flow(uobj, &flow_handler->ibflow, qp, &dev->ib_dev, uflow_res); uobj 280 drivers/infiniband/hw/mlx5/flow.c struct ib_uobject *uobj = uverbs_attr_get_uobject( uobj 319 drivers/infiniband/hw/mlx5/flow.c uobj->object = obj; uobj 389 drivers/infiniband/hw/mlx5/flow.c struct ib_uobject *uobj = uverbs_attr_get_uobject( uobj 418 drivers/infiniband/hw/mlx5/flow.c uverbs_flow_action_fill_action(action, uobj, &mdev->ib_dev, uobj 510 drivers/infiniband/hw/mlx5/flow.c struct ib_uobject *uobj = uverbs_attr_get_uobject(attrs, uobj 560 drivers/infiniband/hw/mlx5/flow.c uverbs_flow_action_fill_action(&maction->ib_action, uobj, &mdev->ib_dev, uobj 39 drivers/infiniband/sw/siw/siw_verbs.c struct siw_uobj *uobj; uobj 43 drivers/infiniband/sw/siw/siw_verbs.c uobj = kzalloc(sizeof(*uobj), GFP_KERNEL); uobj 44 drivers/infiniband/sw/siw/siw_verbs.c if (!uobj) uobj 47 drivers/infiniband/sw/siw/siw_verbs.c if (xa_alloc_cyclic(&uctx->xa, &key, uobj, limit, &uctx->uobj_nextkey, uobj 49 drivers/infiniband/sw/siw/siw_verbs.c kfree(uobj); uobj 52 drivers/infiniband/sw/siw/siw_verbs.c uobj->size = PAGE_ALIGN(size); uobj 53 drivers/infiniband/sw/siw/siw_verbs.c uobj->addr = vaddr; uobj 61 drivers/infiniband/sw/siw/siw_verbs.c struct siw_uobj *uobj = xa_load(&uctx->xa, off); uobj 63 drivers/infiniband/sw/siw/siw_verbs.c if (uobj && uobj->size == size) uobj 64 drivers/infiniband/sw/siw/siw_verbs.c return uobj; uobj 72 drivers/infiniband/sw/siw/siw_verbs.c struct siw_uobj *uobj; uobj 84 drivers/infiniband/sw/siw/siw_verbs.c uobj = siw_get_uobj(uctx, off, size); uobj 85 drivers/infiniband/sw/siw/siw_verbs.c if (!uobj) { uobj 90 drivers/infiniband/sw/siw/siw_verbs.c rv = remap_vmalloc_range(vma, uobj->addr, 0); uobj 2859 include/rdma/ib_verbs.h struct ib_uobject *uobj) uobj 2862 include/rdma/ib_verbs.h uobj->context->cleanup_retryable); uobj 2876 include/rdma/ib_verbs.h struct ib_uobject *uobj) uobj 2878 include/rdma/ib_verbs.h if (atomic_read(usecnt) && ib_is_destroy_retryable(-EBUSY, why, uobj)) uobj 61 include/rdma/uverbs_std_types.h static inline void *_uobj_get_obj_read(struct ib_uobject *uobj) uobj 63 include/rdma/uverbs_std_types.h if (IS_ERR(uobj)) uobj 65 include/rdma/uverbs_std_types.h return uobj->object; uobj 89 include/rdma/uverbs_std_types.h static inline void uobj_put_destroy(struct ib_uobject *uobj) uobj 91 include/rdma/uverbs_std_types.h rdma_lookup_put_uobject(uobj, UVERBS_LOOKUP_DESTROY); uobj 94 include/rdma/uverbs_std_types.h static inline void uobj_put_read(struct ib_uobject *uobj) uobj 96 include/rdma/uverbs_std_types.h rdma_lookup_put_uobject(uobj, UVERBS_LOOKUP_READ); uobj 102 include/rdma/uverbs_std_types.h static inline void uobj_put_write(struct ib_uobject *uobj) uobj 104 include/rdma/uverbs_std_types.h rdma_lookup_put_uobject(uobj, UVERBS_LOOKUP_WRITE); uobj 108 include/rdma/uverbs_std_types.h uobj_alloc_commit(struct ib_uobject *uobj, struct uverbs_attr_bundle *attrs) uobj 110 include/rdma/uverbs_std_types.h int ret = rdma_alloc_commit_uobject(uobj, attrs); uobj 117 include/rdma/uverbs_std_types.h static inline void uobj_alloc_abort(struct ib_uobject *uobj, uobj 120 include/rdma/uverbs_std_types.h rdma_alloc_abort_uobject(uobj, attrs); uobj 127 include/rdma/uverbs_std_types.h struct ib_uobject *uobj = uobj 130 include/rdma/uverbs_std_types.h if (!IS_ERR(uobj)) uobj 132 include/rdma/uverbs_std_types.h return uobj; uobj 139 include/rdma/uverbs_std_types.h struct ib_uobject *uobj, uobj 146 include/rdma/uverbs_std_types.h action->uobject = uobj; uobj 147 include/rdma/uverbs_std_types.h uobj->object = action; uobj 170 include/rdma/uverbs_std_types.h static inline void ib_set_flow(struct ib_uobject *uobj, struct ib_flow *ibflow, uobj 176 include/rdma/uverbs_std_types.h uobj->object = ibflow; uobj 177 include/rdma/uverbs_std_types.h ibflow->uobject = uobj; uobj 185 include/rdma/uverbs_std_types.h uflow = container_of(uobj, typeof(*uflow), uobject); uobj 196 include/rdma/uverbs_std_types.h static inline u32 uobj_get_object_id(struct ib_uobject *uobj) uobj 198 include/rdma/uverbs_std_types.h return uobj->uapi_object->id; uobj 88 include/rdma/uverbs_types.h int (*alloc_commit)(struct ib_uobject *uobj); uobj 90 include/rdma/uverbs_types.h void (*alloc_abort)(struct ib_uobject *uobj); uobj 95 include/rdma/uverbs_types.h void (*lookup_put)(struct ib_uobject *uobj, enum rdma_lookup_mode mode); uobj 97 include/rdma/uverbs_types.h int __must_check (*destroy_hw)(struct ib_uobject *uobj, uobj 100 include/rdma/uverbs_types.h void (*remove_handle)(struct ib_uobject *uobj); uobj 129 include/rdma/uverbs_types.h int __must_check (*destroy_object)(struct ib_uobject *uobj, uobj 138 include/rdma/uverbs_types.h void rdma_lookup_put_uobject(struct ib_uobject *uobj, uobj 143 include/rdma/uverbs_types.h void rdma_alloc_abort_uobject(struct ib_uobject *uobj, uobj 145 include/rdma/uverbs_types.h int __must_check rdma_alloc_commit_uobject(struct ib_uobject *uobj, uobj 157 include/rdma/uverbs_types.h int (*context_closed)(struct ib_uobject *uobj,