Re: [PATCH rdma-rc 13/15] IB/uverbs: Tidy uverbs_uobject_add

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Feb 13, 2018 at 12:09:55PM -0500, Dennis Dalessandro wrote:
> On 2/13/2018 5:18 AM, Leon Romanovsky wrote:
> >From: Jason Gunthorpe <jgg@xxxxxxxxxxxx>
> >
> >Maintaining the uobjects list is mandatory, hoist it into the common
> >rdma_alloc_commit_uobject() function and inline it as there is now
> >only one caller.
> >
> >Signed-off-by: Jason Gunthorpe <jgg@xxxxxxxxxxxx>
> >Signed-off-by: Leon Romanovsky <leon@xxxxxxxxxx>
> >  drivers/infiniband/core/rdma_core.c | 13 ++++---------
> >  1 file changed, 4 insertions(+), 9 deletions(-)
> >
> >diff --git a/drivers/infiniband/core/rdma_core.c b/drivers/infiniband/core/rdma_core.c
> >index 7aee1c0b9884..1cb6849b2231 100644
> >+++ b/drivers/infiniband/core/rdma_core.c
> >@@ -350,13 +350,6 @@ struct ib_uobject *rdma_alloc_begin_uobject(const struct uverbs_obj_type *type,
> >  	return type->type_class->alloc_begin(type, ucontext);
> >  }
> >-static void uverbs_uobject_add(struct ib_uobject *uobject)
> >-{
> >-	mutex_lock(&uobject->context->uobjects_lock);
> >-	list_add(&uobject->list, &uobject->context->uobjects);
> >-	mutex_unlock(&uobject->context->uobjects_lock);
> >-}
> >-
> >  static int __must_check remove_commit_idr_uobject(struct ib_uobject *uobj,
> >  						  enum rdma_remove_reason why)
> >  {
> >@@ -501,7 +494,6 @@ int rdma_explicit_destroy(struct ib_uobject *uobject)
> >  static void alloc_commit_idr_uobject(struct ib_uobject *uobj)
> >  {
> >-	uverbs_uobject_add(uobj);
> >  	spin_lock(&uobj->context->ufile->idr_lock);
> >  	/*
> >  	 * We already allocated this IDR with a NULL object, so
> >@@ -517,7 +509,6 @@ static void alloc_commit_fd_uobject(struct ib_uobject *uobj)
> >  	struct ib_uobject_file *uobj_file =
> >  		container_of(uobj, struct ib_uobject_file, uobj);
> >-	uverbs_uobject_add(&uobj_file->uobj);
> >  	fd_install(uobj_file->uobj.id, uobj->object);
> >  	/* This shouldn't be used anymore. Use the file object instead */
> >  	uobj_file->uobj.id = 0;
> >@@ -544,6 +535,10 @@ int rdma_alloc_commit_uobject(struct ib_uobject *uobj)
> >  	assert_uverbs_usecnt(uobj, true);
> >  	atomic_set(&uobj->usecnt, 0);
> >+	mutex_lock(&uobj->context->uobjects_lock);
> >+	list_add(&uobj->list, &uobj->context->uobjects);
> >+	mutex_unlock(&uobj->context->uobjects_lock);
> >+
> >  	uobj->type->type_class->alloc_commit(uobj);
> >  	up_read(&uobj->context->cleanup_rwsem);
> >
> 
> From the subject it sounds like you are doing a cosmetic clean-up, but this
> is doing a bit more.

The behavior is identical before/after.

There are only two implementations of alloc_commit and both of them do
the list_add as the first operation.

Jason
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux