/kernel/linux/linux-5.10/drivers/infiniband/core/ |
H A D | uverbs_std_types.c | 42 static int uverbs_free_ah(struct ib_uobject *uobject, in uverbs_free_ah() argument 46 return rdma_destroy_ah_user((struct ib_ah *)uobject->object, in uverbs_free_ah() 51 static int uverbs_free_flow(struct ib_uobject *uobject, in uverbs_free_flow() argument 55 struct ib_flow *flow = (struct ib_flow *)uobject->object; in uverbs_free_flow() 57 container_of(uobject, struct ib_uflow_object, uobject); in uverbs_free_flow() 71 static int uverbs_free_mw(struct ib_uobject *uobject, in uverbs_free_mw() argument 75 return uverbs_dealloc_mw((struct ib_mw *)uobject->object); in uverbs_free_mw() 78 static int uverbs_free_rwq_ind_tbl(struct ib_uobject *uobject, in uverbs_free_rwq_ind_tbl() argument 82 struct ib_rwq_ind_table *rwq_ind_tbl = uobject in uverbs_free_rwq_ind_tbl() 102 uverbs_free_xrcd(struct ib_uobject *uobject, enum rdma_remove_reason why, struct uverbs_attr_bundle *attrs) uverbs_free_xrcd() argument 122 uverbs_free_pd(struct ib_uobject *uobject, enum rdma_remove_reason why, struct uverbs_attr_bundle *attrs) uverbs_free_pd() argument [all...] |
H A D | uverbs_std_types_srq.c | 10 static int uverbs_free_srq(struct ib_uobject *uobject, in uverbs_free_srq() argument 14 struct ib_srq *srq = uobject->object; in uverbs_free_srq() 16 container_of(uobject, struct ib_uevent_object, uobject); in uverbs_free_srq() 21 if (ib_is_destroy_retryable(ret, why, uobject)) in uverbs_free_srq() 26 container_of(uobject, struct ib_usrq_object, in uverbs_free_srq() 27 uevent.uobject); in uverbs_free_srq() 41 typeof(*obj), uevent.uobject); in UVERBS_METHOD_SRQ_CREATE() 85 uobject); in UVERBS_METHOD_SRQ_CREATE() 105 obj->uevent.uobject in UVERBS_METHOD_SRQ_CREATE() [all...] |
H A D | uverbs_std_types_cq.c | 38 static int uverbs_free_cq(struct ib_uobject *uobject, in uverbs_free_cq() argument 42 struct ib_cq *cq = uobject->object; in uverbs_free_cq() 45 container_of(uobject, struct ib_ucq_object, uevent.uobject); in uverbs_free_cq() 49 if (ib_is_destroy_retryable(ret, why, uobject)) in uverbs_free_cq() 66 typeof(*obj), uevent.uobject); in UVERBS_METHOD_CQ_CREATE() 122 cq->uobject = obj; in UVERBS_METHOD_CQ_CREATE() 135 obj->uevent.uobject.object = cq; in UVERBS_METHOD_CQ_CREATE() 136 obj->uevent.uobject.user_handle = user_handle; in UVERBS_METHOD_CQ_CREATE() 191 container_of(uobj, struct ib_ucq_object, uevent.uobject); in UVERBS_METHOD_CQ_DESTROY() [all...] |
H A D | uverbs_std_types_wq.c | 10 static int uverbs_free_wq(struct ib_uobject *uobject, in uverbs_free_wq() argument 14 struct ib_wq *wq = uobject->object; in uverbs_free_wq() 16 container_of(uobject, struct ib_uwq_object, uevent.uobject); in uverbs_free_wq() 20 if (ib_is_destroy_retryable(ret, why, uobject)) in uverbs_free_wq() 32 typeof(*obj), uevent.uobject); in UVERBS_METHOD_WQ_CREATE() 68 obj->uevent.uobject.user_handle = user_handle; in UVERBS_METHOD_WQ_CREATE() 80 obj->uevent.uobject.object = wq; in UVERBS_METHOD_WQ_CREATE() 89 wq->uobject = obj; in UVERBS_METHOD_WQ_CREATE() 165 container_of(uobj, struct ib_uwq_object, uevent.uobject); in UVERBS_METHOD_WQ_DESTROY() [all...] |
H A D | uverbs_std_types_dm.c | 37 static int uverbs_free_dm(struct ib_uobject *uobject, in uverbs_free_dm() argument 41 struct ib_dm *dm = uobject->object; in uverbs_free_dm() 44 ret = ib_destroy_usecnt(&dm->usecnt, why, uobject); in uverbs_free_dm() 57 ->obj_attr.uobject; in UVERBS_METHOD_DM_ALLOC() 81 dm->uobject = uobj; in UVERBS_METHOD_DM_ALLOC()
|
H A D | uverbs_cmd.c | 443 pd->uobject = uobj; in ib_uverbs_alloc_pd() 623 obj->uobject.object = xrcd; in ib_uverbs_open_xrcd() 639 uobj_finalize_uobj_create(&obj->uobject, attrs); in ib_uverbs_open_xrcd() 641 resp.xrcd_handle = obj->uobject.id; in ib_uverbs_open_xrcd() 648 uobj_alloc_abort(&obj->uobject, attrs); in ib_uverbs_open_xrcd() 671 int ib_uverbs_dealloc_xrcd(struct ib_uobject *uobject, struct ib_xrcd *xrcd, in ib_uverbs_dealloc_xrcd() argument 685 if (ib_is_destroy_retryable(ret, why, uobject)) { in ib_uverbs_dealloc_xrcd() 749 mr->uobject = uobj; in ib_uverbs_reg_mr() 906 mw->uobject = uobj; in ib_uverbs_alloc_mw() 997 obj->uevent.uobject in create_cq() [all...] |
H A D | uverbs_std_types_qp.c | 11 static int uverbs_free_qp(struct ib_uobject *uobject, in uverbs_free_qp() argument 15 struct ib_qp *qp = uobject->object; in uverbs_free_qp() 17 container_of(uobject, struct ib_uqp_object, uevent.uobject); in uverbs_free_qp() 35 if (ib_is_destroy_retryable(ret, why, uobject)) in uverbs_free_qp() 87 typeof(*obj), uevent.uobject); in UVERBS_METHOD_QP_CREATE() 232 obj->uevent.uobject.user_handle = user_handle; in UVERBS_METHOD_QP_CREATE() 274 uobject); in UVERBS_METHOD_QP_CREATE() 277 qp->uobject = obj; in UVERBS_METHOD_QP_CREATE() 280 obj->uevent.uobject in UVERBS_METHOD_QP_CREATE() [all...] |
H A D | uverbs_std_types_counters.c | 38 static int uverbs_free_counters(struct ib_uobject *uobject, in uverbs_free_counters() argument 42 struct ib_counters *counters = uobject->object; in uverbs_free_counters() 45 ret = ib_destroy_usecnt(&counters->usecnt, why, uobject); in uverbs_free_counters() 78 counters->uobject = uobj; in UVERBS_METHOD_COUNTERS_CREATE()
|
H A D | rdma_core.c | 51 * In order to indicate we no longer needs this uobject, uverbs_uobject_put 52 * is called. When the reference count is decreased, the uobject is freed. 55 void uverbs_uobject_put(struct ib_uobject *uobject) in uverbs_uobject_put() argument 57 kref_put(&uobject->ref, uverbs_uobject_free); in uverbs_uobject_put() 107 * also the uobject itself must be locked for write. 113 * uobject cannot be on the uobjects_lists 119 * For all other destroy modes this function internally unlocks the uobject 146 "ib_uverbs: failed to remove uobject id %d, driver err=%d", in uverbs_destroy_uobject() 192 * LOOKUP_DESTROY uobject kref. 202 * Once the uobject i in uobj_destroy() 345 struct ib_uobject *uobject; lookup_get_fd_uobject() local [all...] |
H A D | uverbs.h | 152 * object of an associated uobject. 182 struct ib_uobject uobject; member 190 struct ib_uobject uobject; member 241 int ib_uverbs_dealloc_xrcd(struct ib_uobject *uobject, struct ib_xrcd *xrcd,
|
/kernel/linux/linux-6.6/drivers/infiniband/core/ |
H A D | uverbs_std_types.c | 42 static int uverbs_free_ah(struct ib_uobject *uobject, in uverbs_free_ah() argument 46 return rdma_destroy_ah_user((struct ib_ah *)uobject->object, in uverbs_free_ah() 51 static int uverbs_free_flow(struct ib_uobject *uobject, in uverbs_free_flow() argument 55 struct ib_flow *flow = (struct ib_flow *)uobject->object; in uverbs_free_flow() 57 container_of(uobject, struct ib_uflow_object, uobject); in uverbs_free_flow() 71 static int uverbs_free_mw(struct ib_uobject *uobject, in uverbs_free_mw() argument 75 return uverbs_dealloc_mw((struct ib_mw *)uobject->object); in uverbs_free_mw() 78 static int uverbs_free_rwq_ind_tbl(struct ib_uobject *uobject, in uverbs_free_rwq_ind_tbl() argument 82 struct ib_rwq_ind_table *rwq_ind_tbl = uobject in uverbs_free_rwq_ind_tbl() 102 uverbs_free_xrcd(struct ib_uobject *uobject, enum rdma_remove_reason why, struct uverbs_attr_bundle *attrs) uverbs_free_xrcd() argument 121 uverbs_free_pd(struct ib_uobject *uobject, enum rdma_remove_reason why, struct uverbs_attr_bundle *attrs) uverbs_free_pd() argument [all...] |
H A D | uverbs_std_types_srq.c | 10 static int uverbs_free_srq(struct ib_uobject *uobject, in uverbs_free_srq() argument 14 struct ib_srq *srq = uobject->object; in uverbs_free_srq() 16 container_of(uobject, struct ib_uevent_object, uobject); in uverbs_free_srq() 26 container_of(uobject, struct ib_usrq_object, in uverbs_free_srq() 27 uevent.uobject); in uverbs_free_srq() 41 typeof(*obj), uevent.uobject); in UVERBS_METHOD_SRQ_CREATE() 85 uobject); in UVERBS_METHOD_SRQ_CREATE() 105 obj->uevent.uobject.user_handle = user_handle; in UVERBS_METHOD_SRQ_CREATE() 113 obj->uevent.uobject in UVERBS_METHOD_SRQ_CREATE() [all...] |
H A D | uverbs_std_types_cq.c | 38 static int uverbs_free_cq(struct ib_uobject *uobject, in uverbs_free_cq() argument 42 struct ib_cq *cq = uobject->object; in uverbs_free_cq() 45 container_of(uobject, struct ib_ucq_object, uevent.uobject); in uverbs_free_cq() 66 typeof(*obj), uevent.uobject); in UVERBS_METHOD_CQ_CREATE() 122 cq->uobject = obj; in UVERBS_METHOD_CQ_CREATE() 135 obj->uevent.uobject.object = cq; in UVERBS_METHOD_CQ_CREATE() 136 obj->uevent.uobject.user_handle = user_handle; in UVERBS_METHOD_CQ_CREATE() 191 container_of(uobj, struct ib_ucq_object, uevent.uobject); in UVERBS_METHOD_CQ_DESTROY()
|
H A D | uverbs_std_types_wq.c | 10 static int uverbs_free_wq(struct ib_uobject *uobject, in uverbs_free_wq() argument 14 struct ib_wq *wq = uobject->object; in uverbs_free_wq() 16 container_of(uobject, struct ib_uwq_object, uevent.uobject); in uverbs_free_wq() 32 typeof(*obj), uevent.uobject); in UVERBS_METHOD_WQ_CREATE() 68 obj->uevent.uobject.user_handle = user_handle; in UVERBS_METHOD_WQ_CREATE() 80 obj->uevent.uobject.object = wq; in UVERBS_METHOD_WQ_CREATE() 89 wq->uobject = obj; in UVERBS_METHOD_WQ_CREATE() 165 container_of(uobj, struct ib_uwq_object, uevent.uobject); in UVERBS_METHOD_WQ_DESTROY()
|
H A D | uverbs_std_types_qp.c | 11 static int uverbs_free_qp(struct ib_uobject *uobject, in uverbs_free_qp() argument 15 struct ib_qp *qp = uobject->object; in uverbs_free_qp() 17 container_of(uobject, struct ib_uqp_object, uevent.uobject); in uverbs_free_qp() 87 typeof(*obj), uevent.uobject); in UVERBS_METHOD_QP_CREATE() 232 obj->uevent.uobject.user_handle = user_handle; in UVERBS_METHOD_QP_CREATE() 261 uobject); in UVERBS_METHOD_QP_CREATE() 265 obj->uevent.uobject.object = qp; in UVERBS_METHOD_QP_CREATE() 351 container_of(uobj, struct ib_uqp_object, uevent.uobject); in UVERBS_METHOD_QP_DESTROY()
|
H A D | uverbs_cmd.c | 443 pd->uobject = uobj; in ib_uverbs_alloc_pd() 623 obj->uobject.object = xrcd; in ib_uverbs_open_xrcd() 639 uobj_finalize_uobj_create(&obj->uobject, attrs); in ib_uverbs_open_xrcd() 641 resp.xrcd_handle = obj->uobject.id; in ib_uverbs_open_xrcd() 648 uobj_alloc_abort(&obj->uobject, attrs); in ib_uverbs_open_xrcd() 671 int ib_uverbs_dealloc_xrcd(struct ib_uobject *uobject, struct ib_xrcd *xrcd, in ib_uverbs_dealloc_xrcd() argument 739 mr->uobject = uobj; in ib_uverbs_reg_mr() 822 * to have a uobject ready to hold it. in ib_uverbs_rereg_mr() 841 new_mr->uobject = uobj; in ib_uverbs_rereg_mr() 940 mw->uobject in ib_uverbs_alloc_mw() [all...] |
H A D | uverbs_std_types_dm.c | 37 static int uverbs_free_dm(struct ib_uobject *uobject, in uverbs_free_dm() argument 41 struct ib_dm *dm = uobject->object; in uverbs_free_dm() 55 ->obj_attr.uobject; in UVERBS_METHOD_DM_ALLOC() 79 dm->uobject = uobj; in UVERBS_METHOD_DM_ALLOC()
|
H A D | uverbs_std_types_flow_action.c | 37 static int uverbs_free_flow_action(struct ib_uobject *uobject, in uverbs_free_flow_action() argument 41 struct ib_flow_action *action = uobject->object; in uverbs_free_flow_action()
|
H A D | uverbs_std_types_counters.c | 38 static int uverbs_free_counters(struct ib_uobject *uobject, in uverbs_free_counters() argument 42 struct ib_counters *counters = uobject->object; in uverbs_free_counters() 77 counters->uobject = uobj; in UVERBS_METHOD_COUNTERS_CREATE()
|
H A D | rdma_core.c | 51 * In order to indicate we no longer needs this uobject, uverbs_uobject_put 52 * is called. When the reference count is decreased, the uobject is freed. 55 void uverbs_uobject_put(struct ib_uobject *uobject) in uverbs_uobject_put() argument 57 kref_put(&uobject->ref, uverbs_uobject_free); in uverbs_uobject_put() 107 * also the uobject itself must be locked for write. 113 * uobject cannot be on the uobjects_lists 119 * For all other destroy modes this function internally unlocks the uobject 186 * LOOKUP_DESTROY uobject kref. 196 * Once the uobject is destroyed by RDMA_REMOVE_DESTROY then it is left in uobj_destroy() 339 struct ib_uobject *uobject; in lookup_get_fd_uobject() local [all...] |
H A D | uverbs_std_types_mr.c | 39 static int uverbs_free_mr(struct ib_uobject *uobject, in uverbs_free_mr() argument 43 return ib_dereg_mr_user((struct ib_mr *)uobject->object, in uverbs_free_mr() 135 mr->uobject = uobj; in UVERBS_METHOD_DM_MR_REG() 249 mr->uobject = uobj; in UVERBS_METHOD_REG_DMABUF_MR()
|
/kernel/linux/linux-5.10/include/rdma/ |
H A D | uverbs_std_types.h | 73 uobj_put_read((_obj)->uobject) 96 WARN_ON(attrs->uobject); in uobj_finalize_uobj_create() 97 attrs->uobject = uobj; in uobj_finalize_uobj_create() 122 action->uobject = uobj; in uverbs_flow_action_fill_action() 136 struct ib_uobject uobject; member 153 ibflow->uobject = uobj; in ib_set_flow() 161 uflow = container_of(uobj, typeof(*uflow), uobject); in ib_set_flow()
|
H A D | uverbs_types.h | 19 * Destroy is like LOOKUP_WRITE, except that the uobject is not 96 /* Free driver resources from the uobject, make the driver uncallable, 97 * and move the uobject to the detached state. If the object was 98 * destroyed by the user's request, a failure should leave the uobject 122 * an uobject. This is useful when a handler wants to keep the uobject's memory 123 * alive, regardless if this uobject is still alive in the context's objects 126 static inline void uverbs_uobject_get(struct ib_uobject *uobject) in uverbs_uobject_get() argument 128 kref_get(&uobject->ref); in uverbs_uobject_get() 130 void uverbs_uobject_put(struct ib_uobject *uobject); [all...] |
/kernel/linux/linux-6.6/include/rdma/ |
H A D | uverbs_std_types.h | 73 uobj_put_read((_obj)->uobject) 96 WARN_ON(attrs->uobject); in uobj_finalize_uobj_create() 97 attrs->uobject = uobj; in uobj_finalize_uobj_create() 122 action->uobject = uobj; in uverbs_flow_action_fill_action() 136 struct ib_uobject uobject; member 153 ibflow->uobject = uobj; in ib_set_flow() 161 uflow = container_of(uobj, typeof(*uflow), uobject); in ib_set_flow()
|
H A D | uverbs_types.h | 19 * Destroy is like LOOKUP_WRITE, except that the uobject is not 98 /* Free driver resources from the uobject, make the driver uncallable, 99 * and move the uobject to the detached state. If the object was 100 * destroyed by the user's request, a failure should leave the uobject 127 * an uobject. This is useful when a handler wants to keep the uobject's memory 128 * alive, regardless if this uobject is still alive in the context's objects 131 static inline void uverbs_uobject_get(struct ib_uobject *uobject) in uverbs_uobject_get() argument 133 kref_get(&uobject->ref); in uverbs_uobject_get() 135 void uverbs_uobject_put(struct ib_uobject *uobject); [all...] |