drivers/infiniband/core/verbs.c | 7 ------- 1 file changed, 7 deletions(-)
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 <yajun.deng@linux.dev>
---
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
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 <yajun.deng@linux.dev> > Reviewed-by: Leon Romanovsky <leonro@nvidia.com> > drivers/infiniband/core/verbs.c | 7 ------- > 1 file changed, 7 deletions(-) Applied to for-next, with Leon's note added Thanks, Jason
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 <yajun.deng@linux.dev> > --- > 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 <leonro@nvidia.com>
© 2016 - 2026 Red Hat, Inc.