| /linux/drivers/infiniband/core/ |
| H A D | rdma_core.c | 67 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 D | uverbs_std_types_dmabuf.c | 73 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 D | uverbs_std_types_dm.c | 53 struct ib_uobject *uobj = in UVERBS_HANDLER() local 79 dm->uobject = uobj; in UVERBS_HANDLER() 82 uobj->object = dm; in UVERBS_HANDLER()
|
| H A D | uverbs_main.c | 122 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 D | uverbs_std_types_counters.c | 58 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 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()
|
| H A D | verbs.c | 1277 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 D | uverbs_std_types.h | 15 * 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 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); 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 D | uchan.c | 77 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 D | uapi.c | 45 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 D | main.c | 4235 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()
|