Home
last modified time | relevance | path

Searched refs:uobj (Results 1 – 12 of 12) sorted by relevance

/linux/drivers/infiniband/core/
H A Drdma_core.c67 uverbs_uobject_put(&file->default_async_file->uobj); in ib_uverbs_release_file()
94 int uverbs_try_lock_object(struct ib_uobject *uobj, in uverbs_try_lock_object() argument
110 return atomic_fetch_add_unless(&uobj->usecnt, 1, -1) == -1 ? in uverbs_try_lock_object()
114 return atomic_cmpxchg(&uobj->usecnt, 0, -1) == 0 ? 0 : -EBUSY; in uverbs_try_lock_object()
122 static void assert_uverbs_usecnt(struct ib_uobject *uobj, in assert_uverbs_usecnt() argument
128 WARN_ON(atomic_read(&uobj->usecnt) <= 0); in assert_uverbs_usecnt()
131 WARN_ON(atomic_read(&uobj->usecnt) != -1); in assert_uverbs_usecnt()
156 static int uverbs_destroy_uobject(struct ib_uobject *uobj, in uverbs_destroy_uobject() argument
165 assert_uverbs_usecnt(uobj, UVERBS_LOOKUP_WRITE); in uverbs_destroy_uobject()
168 WARN_ON(!list_empty(&uobj->list)); in uverbs_destroy_uobject()
[all …]
H A Duverbs_std_types_dmabuf.c73 if (!priv->uobj.context) in uverbs_dmabuf_release()
76 uverbs_uobject_release(&priv->uobj); in uverbs_dmabuf_release()
91 struct ib_uobject *uobj = in UVERBS_HANDLER() local
95 container_of(uobj, struct ib_uverbs_dmabuf_file, uobj); in UVERBS_HANDLER()
138 uobj->object = uverbs_dmabuf->dmabuf->file; in UVERBS_HANDLER()
160 static void uverbs_dmabuf_fd_destroy_uobj(struct ib_uobject *uobj, in uverbs_dmabuf_fd_destroy_uobj() argument
164 container_of(uobj, struct ib_uverbs_dmabuf_file, uobj); in uverbs_dmabuf_fd_destroy_uobj()
H A Duverbs_std_types_dm.c53 struct ib_uobject *uobj = in UVERBS_HANDLER() local
79 dm->uobject = uobj; in UVERBS_HANDLER()
82 uobj->object = dm; in UVERBS_HANDLER()
H A Duverbs_main.c122 struct ib_ucq_object *uobj) in ib_uverbs_release_ucq() argument
128 list_for_each_entry_safe(evt, tmp, &uobj->comp_list, obj_list) { in ib_uverbs_release_ucq()
134 uverbs_uobject_put(&ev_file->uobj); in ib_uverbs_release_ucq()
137 ib_uverbs_release_uevent(&uobj->uevent); in ib_uverbs_release_ucq()
140 void ib_uverbs_release_uevent(struct ib_uevent_object *uobj) in ib_uverbs_release_uevent() argument
142 struct ib_uverbs_async_event_file *async_file = uobj->event_file; in ib_uverbs_release_uevent()
149 list_for_each_entry_safe(evt, tmp, &uobj->event_list, obj_list) { in ib_uverbs_release_uevent()
154 uverbs_uobject_put(&async_file->uobj); in ib_uverbs_release_uevent()
158 struct ib_uqp_object *uobj) in ib_uverbs_detach_umcast() argument
162 list_for_each_entry_safe(mcast, tmp, &uobj->mcast_list, list) { in ib_uverbs_detach_umcast()
[all …]
H A Duverbs_std_types_counters.c58 struct ib_uobject *uobj = uverbs_attr_get_uobject( in UVERBS_HANDLER() local
77 counters->uobject = uobj; in UVERBS_HANDLER()
78 uobj->object = counters; in UVERBS_HANDLER()
H A Duverbs_std_types_wq.c111 uverbs_uobject_put(&obj->uevent.event_file->uobj); in UVERBS_HANDLER()
162 struct ib_uobject *uobj = in UVERBS_HANDLER() local
165 container_of(uobj, struct ib_uwq_object, uevent.uobject); in UVERBS_HANDLER()
H A Dverbs.c1277 struct ib_uqp_object *uobj, const char *caller) in create_qp() argument
1291 qp->uobject = uobj; in create_qp()
1359 struct ib_uqp_object *uobj, const char *caller) in ib_create_qp_user() argument
1366 qp = create_qp(dev, pd, attr, uattrs, uobj, NULL); in ib_create_qp_user()
1376 xrc_qp->uobject = uobj; in ib_create_qp_user()
/linux/include/rdma/
H A Duverbs_std_types.h15 * The uobj APIs should only be used with the write based uAPI to access
34 static inline void *_uobj_get_obj_read(struct ib_uobject *uobj) in _uobj_get_obj_read() argument
36 if (IS_ERR(uobj)) in _uobj_get_obj_read()
37 return ERR_CAST(uobj); in _uobj_get_obj_read()
38 return uobj->object; in _uobj_get_obj_read()
62 static inline void uobj_put_destroy(struct ib_uobject *uobj) in uobj_put_destroy() argument
64 rdma_lookup_put_uobject(uobj, UVERBS_LOOKUP_DESTROY); in uobj_put_destroy()
67 static inline void uobj_put_read(struct ib_uobject *uobj) in uobj_put_read() argument
69 rdma_lookup_put_uobject(uobj, UVERBS_LOOKUP_READ); in uobj_put_read()
75 static inline void uobj_put_write(struct ib_uobject *uobj) in uobj_put_write() argument
80 uobj_alloc_abort(struct ib_uobject * uobj,struct uverbs_attr_bundle * attrs) uobj_alloc_abort() argument
86 uobj_finalize_uobj_create(struct ib_uobject * uobj,struct uverbs_attr_bundle * attrs) uobj_finalize_uobj_create() argument
104 struct ib_uobject *uobj = rdma_alloc_begin_uobject(obj, attrs); __uobj_alloc() local
115 uverbs_flow_action_fill_action(struct ib_flow_action * action,struct ib_uobject * uobj,struct ib_device * ib_dev,enum ib_flow_action_type type) uverbs_flow_action_fill_action() argument
146 ib_set_flow(struct ib_uobject * uobj,struct ib_flow * ibflow,struct ib_qp * qp,struct ib_device * device,struct ib_uflow_resources * uflow_res) ib_set_flow() argument
172 uobj_get_object_id(struct ib_uobject * uobj) uobj_get_object_id() argument
[all...]
H A Duverbs_types.h61 void (*alloc_commit)(struct ib_uobject *uobj);
63 void (*alloc_abort)(struct ib_uobject *uobj);
68 void (*lookup_put)(struct ib_uobject *uobj, enum rdma_lookup_mode mode);
70 int __must_check (*destroy_hw)(struct ib_uobject *uobj,
73 void (*remove_handle)(struct ib_uobject *uobj);
103 int __must_check (*destroy_object)(struct ib_uobject *uobj,
112 void rdma_lookup_put_uobject(struct ib_uobject *uobj,
116 void rdma_alloc_abort_uobject(struct ib_uobject *uobj,
119 void rdma_alloc_commit_uobject(struct ib_uobject *uobj,
137 int uverbs_try_lock_object(struct ib_uobject *uobj, enum rdma_lookup_mode mode);
[all …]
/linux/drivers/gpu/drm/nouveau/nvkm/engine/fifo/
H A Duchan.c77 struct nvkm_uobj *uobj = container_of(oproxy, typeof(*uobj), oproxy); in nvkm_uchan_object_fini_1() local
78 struct nvkm_chan *chan = uobj->chan; in nvkm_uchan_object_fini_1()
79 struct nvkm_cctx *cctx = uobj->cctx; in nvkm_uchan_object_fini_1()
100 struct nvkm_uobj *uobj = container_of(oproxy, typeof(*uobj), oproxy); in nvkm_uchan_object_init_0() local
101 struct nvkm_chan *chan = uobj->chan; in nvkm_uchan_object_init_0()
102 struct nvkm_cctx *cctx = uobj->cctx; in nvkm_uchan_object_init_0()
133 struct nvkm_uobj *uobj = container_of(oproxy, typeof(*uobj), oproxy); in nvkm_uchan_object_dtor() local
136 if (!uobj->cctx) in nvkm_uchan_object_dtor()
139 engn = uobj->cctx->vctx->ectx->engn; in nvkm_uchan_object_dtor()
141 engn->func->ramht_del(uobj->chan, uobj->hash); in nvkm_uchan_object_dtor()
[all …]
/linux/drivers/infiniband/hw/bnxt_re/
H A Duapi.c45 struct ib_uobject *uobj = uverbs_attr_get_uobject(attrs, BNXT_RE_ALLOC_PAGE_HANDLE); in UVERBS_HANDLER() local
129 uobj->object = entry; in UVERBS_HANDLER()
223 struct ib_uobject *uobj = uverbs_attr_get_uobject(attrs, BNXT_RE_TOGGLE_MEM_HANDLE); in UVERBS_HANDLER() local
345 uobj->object = tmem; in UVERBS_HANDLER()
424 struct ib_uobject *uobj; in UVERBS_HANDLER() local
434 uobj = uverbs_attr_get_uobject(attrs, BNXT_RE_ALLOC_DBR_HANDLE); in UVERBS_HANDLER()
462 uobj->object = obj; in UVERBS_HANDLER()
/linux/drivers/infiniband/hw/mlx5/
H A Dmain.c4235 struct ib_uobject *uobj = uverbs_attr_get_uobject( in UVERBS_HANDLER() local
4271 uobj->object = entry; in UVERBS_HANDLER()
4370 struct ib_uobject *uobj = uverbs_attr_get_uobject( in UVERBS_HANDLER() local
4402 uobj->object = entry; in UVERBS_HANDLER()