Home
last modified time | relevance | path

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

/linux-6.1.9/drivers/infiniband/core/
Drdma_core.c61 static int uverbs_try_lock_object(struct ib_uobject *uobj, in uverbs_try_lock_object() argument
77 return atomic_fetch_add_unless(&uobj->usecnt, 1, -1) == -1 ? in uverbs_try_lock_object()
81 return atomic_cmpxchg(&uobj->usecnt, 0, -1) == 0 ? 0 : -EBUSY; in uverbs_try_lock_object()
88 static void assert_uverbs_usecnt(struct ib_uobject *uobj, in assert_uverbs_usecnt() argument
94 WARN_ON(atomic_read(&uobj->usecnt) <= 0); in assert_uverbs_usecnt()
97 WARN_ON(atomic_read(&uobj->usecnt) != -1); in assert_uverbs_usecnt()
122 static int uverbs_destroy_uobject(struct ib_uobject *uobj, in uverbs_destroy_uobject() argument
131 assert_uverbs_usecnt(uobj, UVERBS_LOOKUP_WRITE); in uverbs_destroy_uobject()
134 WARN_ON(!list_empty(&uobj->list)); in uverbs_destroy_uobject()
135 WARN_ON(!uobj->context); in uverbs_destroy_uobject()
[all …]
Duverbs_std_types_async_fd.c14 struct ib_uobject *uobj = in UVERBS_HANDLER() local
18 container_of(uobj, struct ib_uverbs_async_event_file, uobj)); in UVERBS_HANDLER()
22 static void uverbs_async_event_destroy_uobj(struct ib_uobject *uobj, in uverbs_async_event_destroy_uobj() argument
26 container_of(uobj, struct ib_uverbs_async_event_file, uobj); in uverbs_async_event_destroy_uobj()
38 struct ib_uobject *uobj = filp->private_data; in uverbs_async_event_release() local
41 if (!uobj) in uverbs_async_event_release()
45 container_of(uobj, struct ib_uverbs_async_event_file, uobj); in uverbs_async_event_release()
53 uverbs_uobject_get(uobj); in uverbs_async_event_release()
56 uverbs_uobject_put(uobj); in uverbs_async_event_release()
Duverbs_cmd.c191 struct ib_uobject *uobj = ufd_get_read(UVERBS_OBJECT_COMP_CHANNEL, in _ib_uverbs_lookup_comp_file() local
194 if (IS_ERR(uobj)) in _ib_uverbs_lookup_comp_file()
195 return (void *)uobj; in _ib_uverbs_lookup_comp_file()
197 uverbs_uobject_get(uobj); in _ib_uverbs_lookup_comp_file()
198 uobj_put_read(uobj); in _ib_uverbs_lookup_comp_file()
200 return container_of(uobj, struct ib_uverbs_completion_event_file, in _ib_uverbs_lookup_comp_file()
201 uobj); in _ib_uverbs_lookup_comp_file()
281 struct ib_uobject *uobj; in ib_uverbs_get_context() local
292 uobj = uobj_alloc(UVERBS_OBJECT_ASYNC_EVENT, attrs, &ib_dev); in ib_uverbs_get_context()
293 if (IS_ERR(uobj)) { in ib_uverbs_get_context()
[all …]
Duverbs.h126 struct ib_uobject uobj; member
132 struct ib_uobject uobj; member
229 struct ib_ucq_object *uobj);
230 void ib_uverbs_release_uevent(struct ib_uevent_object *uobj);
247 struct ib_uqp_object *uobj);
313 uobj); in ib_uverbs_get_async_event()
315 uverbs_uobject_get(&async_ev_file->uobj); in ib_uverbs_get_async_event()
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()
Duverbs_std_types_mr.c87 struct ib_uobject *uobj = in UVERBS_HANDLER() local
135 mr->uobject = uobj; in UVERBS_HANDLER()
142 uobj->object = mr; in UVERBS_HANDLER()
189 struct ib_uobject *uobj = in UVERBS_HANDLER() local
249 mr->uobject = uobj; in UVERBS_HANDLER()
255 uobj->object = mr; in UVERBS_HANDLER()
Duverbs_main.c132 struct ib_ucq_object *uobj) in ib_uverbs_release_ucq() argument
138 list_for_each_entry_safe(evt, tmp, &uobj->comp_list, obj_list) { in ib_uverbs_release_ucq()
144 uverbs_uobject_put(&ev_file->uobj); in ib_uverbs_release_ucq()
147 ib_uverbs_release_uevent(&uobj->uevent); in ib_uverbs_release_ucq()
150 void ib_uverbs_release_uevent(struct ib_uevent_object *uobj) in ib_uverbs_release_uevent() argument
152 struct ib_uverbs_async_event_file *async_file = uobj->event_file; in ib_uverbs_release_uevent()
159 list_for_each_entry_safe(evt, tmp, &uobj->event_list, obj_list) { in ib_uverbs_release_uevent()
164 uverbs_uobject_put(&async_file->uobj); in ib_uverbs_release_uevent()
168 struct ib_uqp_object *uobj) in ib_uverbs_detach_umcast() argument
172 list_for_each_entry_safe(mcast, tmp, &uobj->mcast_list, list) { in ib_uverbs_detach_umcast()
[all …]
Duverbs_std_types_cq.c100 uobj); in UVERBS_HANDLER()
149 uverbs_uobject_put(&obj->uevent.event_file->uobj); in UVERBS_HANDLER()
188 struct ib_uobject *uobj = in UVERBS_HANDLER() local
191 container_of(uobj, struct ib_ucq_object, uevent.uobject); in UVERBS_HANDLER()
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()
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()
Duverbs_std_types.c158 uverbs_completion_event_file_destroy_uobj(struct ib_uobject *uobj, in uverbs_completion_event_file_destroy_uobj() argument
162 container_of(uobj, struct ib_uverbs_completion_event_file, in uverbs_completion_event_file_destroy_uobj()
163 uobj); in uverbs_completion_event_file_destroy_uobj()
Duverbs_std_types_srq.c140 uverbs_uobject_put(&obj->uevent.event_file->uobj); in UVERBS_HANDLER()
200 struct ib_uobject *uobj = in UVERBS_HANDLER() local
203 container_of(uobj, struct ib_usrq_object, uevent.uobject); in UVERBS_HANDLER()
Drdma_core.h51 int uobj_destroy(struct ib_uobject *uobj, struct uverbs_attr_bundle *attrs);
66 void uverbs_finalize_object(struct ib_uobject *uobj,
Duverbs_std_types_qp.c282 uverbs_uobject_put(&obj->uevent.event_file->uobj); in UVERBS_HANDLER()
348 struct ib_uobject *uobj = in UVERBS_HANDLER() local
351 container_of(uobj, struct ib_uqp_object, uevent.uobject); in UVERBS_HANDLER()
Dcore_priv.h322 struct ib_uqp_object *uobj, const char *caller);
Dverbs.c1198 struct ib_uqp_object *uobj, const char *caller) in create_qp() argument
1213 qp->uobject = uobj; in create_qp()
1275 struct ib_uqp_object *uobj, const char *caller) in ib_create_qp_user() argument
1282 qp = create_qp(dev, pd, attr, udata, uobj, NULL); in ib_create_qp_user()
1292 xrc_qp->uobject = uobj; in ib_create_qp_user()
/linux-6.1.9/include/rdma/
Duverbs_std_types.h34 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()
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
77 rdma_lookup_put_uobject(uobj, UVERBS_LOOKUP_WRITE); in uobj_put_write()
80 static inline void uobj_alloc_abort(struct ib_uobject *uobj, in uobj_alloc_abort() argument
[all …]
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,
146 void (*destroy_object)(struct ib_uobject *uobj,
/linux-6.1.9/drivers/infiniband/hw/mlx5/
Ddevx.c81 struct ib_uobject uobj; member
592 struct ib_uobject *uobj, const void *in) in devx_is_valid_obj_id() argument
600 switch (uobj_get_object_id(uobj)) { in devx_is_valid_obj_id()
603 to_mcq(uobj->object)->mcq.cqn) == in devx_is_valid_obj_id()
608 struct mlx5_core_srq *srq = &(to_msrq(uobj->object)->msrq); in devx_is_valid_obj_id()
626 to_msrq(uobj->object)->msrq.srqn) == in devx_is_valid_obj_id()
632 struct mlx5_ib_qp *qp = to_mqp(uobj->object); in devx_is_valid_obj_id()
660 to_mrwq(uobj->object)->core_qp.qpn) == in devx_is_valid_obj_id()
665 to_mrwq_ind_table(uobj->object)->rqtn) == in devx_is_valid_obj_id()
669 return ((struct devx_obj *)uobj->object)->obj_id == obj_id; in devx_is_valid_obj_id()
[all …]
Dqos.c28 struct ib_uobject *uobj = uverbs_attr_get_uobject(attrs, in UVERBS_HANDLER() local
73 uobj->object = pp_entry; in UVERBS_HANDLER()
Ddm.c207 struct ib_uobject *uobj = uverbs_attr_get_uobject( in UVERBS_HANDLER() local
209 struct mlx5_ib_dev *dev = to_mdev(uobj->context->device); in UVERBS_HANDLER()
210 struct ib_dm *ibdm = uobj->object; in UVERBS_HANDLER()
244 err = add_dm_mmap_entry(uobj->context, &op_entry->mentry, in UVERBS_HANDLER()
Dfs.c1919 struct ib_uobject *uobj; in UVERBS_HANDLER() local
1928 uobj = uverbs_attr_get_uobject(attrs, MLX5_IB_ATTR_CREATE_FLOW_HANDLE); in UVERBS_HANDLER()
2008 ib_set_flow(uobj, &flow_handler->ibflow, qp, &dev->ib_dev, uflow_res); in UVERBS_HANDLER()
2095 struct ib_uobject *uobj = uverbs_attr_get_uobject( in UVERBS_HANDLER() local
2140 uobj->object = obj; in UVERBS_HANDLER()
2153 struct ib_uobject *uobj = uverbs_attr_get_uobject( in UVERBS_HANDLER() local
2202 uobj->object = obj; in UVERBS_HANDLER()
2264 struct ib_uobject *uobj = uverbs_attr_get_uobject( in UVERBS_HANDLER() local
2293 uverbs_flow_action_fill_action(action, uobj, &mdev->ib_dev, in UVERBS_HANDLER()
2390 struct ib_uobject *uobj = uverbs_attr_get_uobject(attrs, in UVERBS_HANDLER() local
[all …]
Dmain.c3390 struct ib_uobject *uobj = uverbs_attr_get_uobject( in UVERBS_HANDLER() local
3408 uobj->object = entry; in UVERBS_HANDLER()
3503 struct ib_uobject *uobj = uverbs_attr_get_uobject( in UVERBS_HANDLER() local
3535 uobj->object = entry; in UVERBS_HANDLER()