| /Linux-v5.10/drivers/infiniband/core/ |
| D | rdma_core.c | 61 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 …]
|
| D | uverbs_std_types_async_fd.c | 14 struct ib_uobject *uobj = in UVERBS_HANDLER() local 18 container_of(uobj, struct ib_uverbs_async_event_file, uobj)); in UVERBS_HANDLER() 22 static int 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() 39 struct ib_uobject *uobj = filp->private_data; in uverbs_async_event_release() local 42 if (!uobj) in uverbs_async_event_release() 46 container_of(uobj, struct ib_uverbs_async_event_file, uobj); in uverbs_async_event_release() 54 uverbs_uobject_get(uobj); in uverbs_async_event_release() 57 uverbs_uobject_put(uobj); in uverbs_async_event_release()
|
| D | uverbs_cmd.c | 191 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 …]
|
| D | uverbs.h | 126 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()
|
| D | uverbs_std_types_dm.c | 55 struct ib_uobject *uobj = in UVERBS_HANDLER() local 81 dm->uobject = uobj; in UVERBS_HANDLER() 84 uobj->object = dm; in UVERBS_HANDLER()
|
| D | uverbs_main.c | 132 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 …]
|
| D | uverbs_std_types_cq.c | 100 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()
|
| D | uverbs_std_types_counters.c | 59 struct ib_uobject *uobj = uverbs_attr_get_uobject( in UVERBS_HANDLER() local 78 counters->uobject = uobj; in UVERBS_HANDLER() 79 uobj->object = counters; in UVERBS_HANDLER()
|
| D | uverbs_std_types_wq.c | 111 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()
|
| D | uverbs_std_types.c | 161 uverbs_completion_event_file_destroy_uobj(struct ib_uobject *uobj, in uverbs_completion_event_file_destroy_uobj() argument 165 container_of(uobj, struct ib_uverbs_completion_event_file, in uverbs_completion_event_file_destroy_uobj() 166 uobj); in uverbs_completion_event_file_destroy_uobj()
|
| D | uverbs_std_types_flow_action.c | 311 struct ib_uobject *uobj = uverbs_attr_get_uobject( in UVERBS_HANDLER() local 331 uverbs_flow_action_fill_action(action, uobj, ib_dev, in UVERBS_HANDLER() 340 struct ib_uobject *uobj = uverbs_attr_get_uobject( in UVERBS_HANDLER() local 342 struct ib_flow_action *action = uobj->object; in UVERBS_HANDLER()
|
| D | uverbs_std_types_mr.c | 85 struct ib_uobject *uobj = in UVERBS_HANDLER() local 133 mr->uobject = uobj; in UVERBS_HANDLER() 137 uobj->object = mr; in UVERBS_HANDLER()
|
| D | uverbs_std_types_srq.c | 140 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()
|
| D | rdma_core.h | 51 int uobj_destroy(struct ib_uobject *uobj, struct uverbs_attr_bundle *attrs); 66 void uverbs_finalize_object(struct ib_uobject *uobj,
|
| D | uverbs_std_types_qp.c | 303 uverbs_uobject_put(&obj->uevent.event_file->uobj); in UVERBS_HANDLER() 369 struct ib_uobject *uobj = in UVERBS_HANDLER() local 372 container_of(uobj, struct ib_uqp_object, uevent.uobject); in UVERBS_HANDLER()
|
| D | core_priv.h | 325 struct ib_uqp_object *uobj) in _ib_create_qp() argument 340 qp->uobject = uobj; in _ib_create_qp()
|
| /Linux-v5.10/include/rdma/ |
| D | uverbs_std_types.h | 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() 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 …]
|
| D | uverbs_types.h | 61 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); 101 int __must_check (*destroy_object)(struct ib_uobject *uobj, 110 void rdma_lookup_put_uobject(struct ib_uobject *uobj, 114 void rdma_alloc_abort_uobject(struct ib_uobject *uobj, 117 void rdma_alloc_commit_uobject(struct ib_uobject *uobj, 141 int (*destroy_object)(struct ib_uobject *uobj,
|
| D | ib_verbs.h | 2919 struct ib_uobject *uobj) in ib_is_destroy_retryable() argument 2922 uobj->context->cleanup_retryable); in ib_is_destroy_retryable() 2936 struct ib_uobject *uobj) in ib_destroy_usecnt() argument 2938 if (atomic_read(usecnt) && ib_is_destroy_retryable(-EBUSY, why, uobj)) in ib_destroy_usecnt()
|
| /Linux-v5.10/drivers/infiniband/hw/mlx5/ |
| D | devx.c | 81 struct ib_uobject uobj; member 521 struct ib_uobject *uobj, const void *in) in devx_is_valid_obj_id() argument 529 switch (uobj_get_object_id(uobj)) { in devx_is_valid_obj_id() 532 to_mcq(uobj->object)->mcq.cqn) == in devx_is_valid_obj_id() 537 struct mlx5_core_srq *srq = &(to_msrq(uobj->object)->msrq); in devx_is_valid_obj_id() 555 to_msrq(uobj->object)->msrq.srqn) == in devx_is_valid_obj_id() 561 struct mlx5_ib_qp *qp = to_mqp(uobj->object); in devx_is_valid_obj_id() 591 to_mrwq(uobj->object)->core_qp.qpn) == in devx_is_valid_obj_id() 596 to_mrwq_ind_table(uobj->object)->rqtn) == in devx_is_valid_obj_id() 600 return ((struct devx_obj *)uobj->object)->obj_id == obj_id; in devx_is_valid_obj_id() [all …]
|
| D | qos.c | 28 struct ib_uobject *uobj = uverbs_attr_get_uobject(attrs, in UVERBS_HANDLER() local 73 uobj->object = pp_entry; in UVERBS_HANDLER()
|
| D | fs.c | 1936 struct ib_uobject *uobj; in UVERBS_HANDLER() local 1945 uobj = uverbs_attr_get_uobject(attrs, MLX5_IB_ATTR_CREATE_FLOW_HANDLE); in UVERBS_HANDLER() 2025 ib_set_flow(uobj, &flow_handler->ibflow, qp, &dev->ib_dev, uflow_res); in UVERBS_HANDLER() 2099 struct ib_uobject *uobj = uverbs_attr_get_uobject( in UVERBS_HANDLER() local 2138 uobj->object = obj; in UVERBS_HANDLER() 2193 struct ib_uobject *uobj = uverbs_attr_get_uobject( in UVERBS_HANDLER() local 2222 uverbs_flow_action_fill_action(action, uobj, &mdev->ib_dev, in UVERBS_HANDLER() 2314 struct ib_uobject *uobj = uverbs_attr_get_uobject(attrs, in UVERBS_HANDLER() local 2364 uverbs_flow_action_fill_action(&maction->ib_action, uobj, &mdev->ib_dev, in UVERBS_HANDLER()
|
| D | main.c | 3680 struct ib_uobject *uobj = uverbs_attr_get_uobject( in UVERBS_HANDLER() local 3698 uobj->object = entry; in UVERBS_HANDLER() 3793 struct ib_uobject *uobj = uverbs_attr_get_uobject( in UVERBS_HANDLER() local 3825 uobj->object = entry; in UVERBS_HANDLER()
|