IB: Pass uverbs_attr_bundle down uobject destroy path
Pass uverbs_attr_bundle down the uobject destroy path. The next patch will use this to eliminate the dependecy of the drivers in ib_x->uobject pointers. Signed-off-by: Shamir Rabinovitch <shamir.rabinovitch@oracle.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:

committed by
Jason Gunthorpe

parent
70f06b26f0
commit
a6a3797df2
@@ -104,18 +104,20 @@ static inline void uobj_put_write(struct ib_uobject *uobj)
|
||||
rdma_lookup_put_uobject(uobj, UVERBS_LOOKUP_WRITE);
|
||||
}
|
||||
|
||||
static inline int __must_check uobj_alloc_commit(struct ib_uobject *uobj)
|
||||
static inline int __must_check
|
||||
uobj_alloc_commit(struct ib_uobject *uobj, struct uverbs_attr_bundle *attrs)
|
||||
{
|
||||
int ret = rdma_alloc_commit_uobject(uobj);
|
||||
int ret = rdma_alloc_commit_uobject(uobj, attrs);
|
||||
|
||||
if (ret)
|
||||
return ret;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void uobj_alloc_abort(struct ib_uobject *uobj)
|
||||
static inline void uobj_alloc_abort(struct ib_uobject *uobj,
|
||||
struct uverbs_attr_bundle *attrs)
|
||||
{
|
||||
rdma_alloc_abort_uobject(uobj);
|
||||
rdma_alloc_abort_uobject(uobj, attrs);
|
||||
}
|
||||
|
||||
static inline struct ib_uobject *
|
||||
|
@@ -95,7 +95,8 @@ struct uverbs_obj_type_class {
|
||||
void (*lookup_put)(struct ib_uobject *uobj, enum rdma_lookup_mode mode);
|
||||
/* This does not consume the kref on uobj */
|
||||
int __must_check (*destroy_hw)(struct ib_uobject *uobj,
|
||||
enum rdma_remove_reason why);
|
||||
enum rdma_remove_reason why,
|
||||
struct uverbs_attr_bundle *attrs);
|
||||
void (*remove_handle)(struct ib_uobject *uobj);
|
||||
u8 needs_kfree_rcu;
|
||||
};
|
||||
@@ -126,7 +127,8 @@ struct uverbs_obj_idr_type {
|
||||
* completely unchanged.
|
||||
*/
|
||||
int __must_check (*destroy_object)(struct ib_uobject *uobj,
|
||||
enum rdma_remove_reason why);
|
||||
enum rdma_remove_reason why,
|
||||
struct uverbs_attr_bundle *attrs);
|
||||
};
|
||||
|
||||
struct ib_uobject *rdma_lookup_get_uobject(const struct uverbs_api_object *obj,
|
||||
@@ -138,8 +140,10 @@ void rdma_lookup_put_uobject(struct ib_uobject *uobj,
|
||||
struct ib_uobject *rdma_alloc_begin_uobject(const struct uverbs_api_object *obj,
|
||||
struct ib_uverbs_file *ufile,
|
||||
struct uverbs_attr_bundle *attrs);
|
||||
void rdma_alloc_abort_uobject(struct ib_uobject *uobj);
|
||||
int __must_check rdma_alloc_commit_uobject(struct ib_uobject *uobj);
|
||||
void rdma_alloc_abort_uobject(struct ib_uobject *uobj,
|
||||
struct uverbs_attr_bundle *attrs);
|
||||
int __must_check rdma_alloc_commit_uobject(struct ib_uobject *uobj,
|
||||
struct uverbs_attr_bundle *attrs);
|
||||
|
||||
struct uverbs_obj_fd_type {
|
||||
/*
|
||||
|
Reference in New Issue
Block a user