2022-02-23 08:57:56

by Yajun Deng

[permalink] [raw]
Subject: [PATCH for-next] RDMA/core: Remove unnecessary statements

The rdma_zalloc_drv_obj() in __ib_alloc_pd() would zero pd, it unnecessary
add NULL to the object in struct pd.

The uverbs_free_pd() already return busy if pd->usecnt is true, there is
no need to add a warning.

Signed-off-by: Yajun Deng <[email protected]>
---
drivers/infiniband/core/verbs.c | 7 -------
1 file changed, 7 deletions(-)

diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c
index e821dc94a43e..03bc9d34c13d 100644
--- a/drivers/infiniband/core/verbs.c
+++ b/drivers/infiniband/core/verbs.c
@@ -268,8 +268,6 @@ struct ib_pd *__ib_alloc_pd(struct ib_device *device, unsigned int flags,
return ERR_PTR(-ENOMEM);

pd->device = device;
- pd->uobject = NULL;
- pd->__internal_mr = NULL;
atomic_set(&pd->usecnt, 0);
pd->flags = flags;

@@ -341,11 +339,6 @@ int ib_dealloc_pd_user(struct ib_pd *pd, struct ib_udata *udata)
pd->__internal_mr = NULL;
}

- /* uverbs manipulates usecnt with proper locking, while the kabi
- * requires the caller to guarantee we can't race here.
- */
- WARN_ON(atomic_read(&pd->usecnt));
-
ret = pd->device->ops.dealloc_pd(pd, udata);
if (ret)
return ret;
--
2.25.1


2022-02-24 20:15:44

by Leon Romanovsky

[permalink] [raw]
Subject: Re: [PATCH for-next] RDMA/core: Remove unnecessary statements

On Wed, Feb 23, 2022 at 03:49:01PM +0800, Yajun Deng wrote:
> The rdma_zalloc_drv_obj() in __ib_alloc_pd() would zero pd, it unnecessary
> add NULL to the object in struct pd.
>
> The uverbs_free_pd() already return busy if pd->usecnt is true, there is
> no need to add a warning.
>
> Signed-off-by: Yajun Deng <[email protected]>
> ---
> drivers/infiniband/core/verbs.c | 7 -------
> 1 file changed, 7 deletions(-)
>
> diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c
> index e821dc94a43e..03bc9d34c13d 100644
> --- a/drivers/infiniband/core/verbs.c
> +++ b/drivers/infiniband/core/verbs.c
> @@ -268,8 +268,6 @@ struct ib_pd *__ib_alloc_pd(struct ib_device *device, unsigned int flags,
> return ERR_PTR(-ENOMEM);
>
> pd->device = device;
> - pd->uobject = NULL;
> - pd->__internal_mr = NULL;
> atomic_set(&pd->usecnt, 0);
^^^^^^^^ this line should be removed too.

> pd->flags = flags;
>
> @@ -341,11 +339,6 @@ int ib_dealloc_pd_user(struct ib_pd *pd, struct ib_udata *udata)
> pd->__internal_mr = NULL;
> }
>
> - /* uverbs manipulates usecnt with proper locking, while the kabi
> - * requires the caller to guarantee we can't race here.
> - */
> - WARN_ON(atomic_read(&pd->usecnt));
> -

ib_dealloc_pd_user() is called not only in uverbs_free_pd(), but in ib_dealloc_pd() too.
So commit message is not really correct.

Of course, ib_dealloc_pd() is kernel verb and doesn't use ->usecnt at all.

Thanks,
Reviewed-by: Leon Romanovsky <[email protected]>

2022-02-28 20:26:00

by Jason Gunthorpe

[permalink] [raw]
Subject: Re: [PATCH for-next] RDMA/core: Remove unnecessary statements

On Wed, Feb 23, 2022 at 03:49:01PM +0800, Yajun Deng wrote:
> The rdma_zalloc_drv_obj() in __ib_alloc_pd() would zero pd, it unnecessary
> add NULL to the object in struct pd.
>
> The uverbs_free_pd() already return busy if pd->usecnt is true, there is
> no need to add a warning.
>
> Signed-off-by: Yajun Deng <[email protected]>
> Reviewed-by: Leon Romanovsky <[email protected]>
> drivers/infiniband/core/verbs.c | 7 -------
> 1 file changed, 7 deletions(-)

Applied to for-next, with Leon's note added

Thanks,
Jason