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,