netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next] devlink: Add WARN_ON to catch errors of not cleaning devlink objects
@ 2019-02-08 16:22 Parav Pandit
  2019-02-08 17:30 ` David Ahern
  0 siblings, 1 reply; 4+ messages in thread
From: Parav Pandit @ 2019-02-08 16:22 UTC (permalink / raw)
  To: netdev, davem; +Cc: parav

Add WARN_ON to make sure that all sub objects of a devlink device are
cleanedup before freeing the devlink device.
This helps to catch any driver bugs.

Signed-off-by: Parav Pandit <parav@mellanox.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
---
 net/core/devlink.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/net/core/devlink.c b/net/core/devlink.c
index cd0d393..5e2ef5a 100644
--- a/net/core/devlink.c
+++ b/net/core/devlink.c
@@ -4229,6 +4229,13 @@ void devlink_unregister(struct devlink *devlink)
  */
 void devlink_free(struct devlink *devlink)
 {
+	WARN_ON(!list_empty(&devlink->port_list));
+	WARN_ON(!list_empty(&devlink->sb_list));
+	WARN_ON(!list_empty(&devlink->dpipe_table_list));
+	WARN_ON(!list_empty(&devlink->resource_list));
+	WARN_ON(!list_empty(&devlink->param_list));
+	WARN_ON(!list_empty(&devlink->region_list));
+
 	kfree(devlink);
 }
 EXPORT_SYMBOL_GPL(devlink_free);
-- 
1.8.3.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH net-next] devlink: Add WARN_ON to catch errors of not cleaning devlink objects
  2019-02-08 16:22 [PATCH net-next] devlink: Add WARN_ON to catch errors of not cleaning devlink objects Parav Pandit
@ 2019-02-08 17:30 ` David Ahern
  2019-02-08 18:01   ` Parav Pandit
  0 siblings, 1 reply; 4+ messages in thread
From: David Ahern @ 2019-02-08 17:30 UTC (permalink / raw)
  To: Parav Pandit, netdev, davem

On 2/8/19 8:22 AM, Parav Pandit wrote:
> Add WARN_ON to make sure that all sub objects of a devlink device are
> cleanedup before freeing the devlink device.
> This helps to catch any driver bugs.
> 
> Signed-off-by: Parav Pandit <parav@mellanox.com>
> Acked-by: Jiri Pirko <jiri@mellanox.com>
> ---
>  net/core/devlink.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/net/core/devlink.c b/net/core/devlink.c
> index cd0d393..5e2ef5a 100644
> --- a/net/core/devlink.c
> +++ b/net/core/devlink.c
> @@ -4229,6 +4229,13 @@ void devlink_unregister(struct devlink *devlink)
>   */
>  void devlink_free(struct devlink *devlink)
>  {
> +	WARN_ON(!list_empty(&devlink->port_list));
> +	WARN_ON(!list_empty(&devlink->sb_list));
> +	WARN_ON(!list_empty(&devlink->dpipe_table_list));
> +	WARN_ON(!list_empty(&devlink->resource_list));
> +	WARN_ON(!list_empty(&devlink->param_list));
> +	WARN_ON(!list_empty(&devlink->region_list));
> +
>  	kfree(devlink);
>  }
>  EXPORT_SYMBOL_GPL(devlink_free);
> 

reporter_list was just added which brings up the maintenance question:
If you are going to do this you might want a comment in
include/net/devlink.h to remind folks to update this function as relevant.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: [PATCH net-next] devlink: Add WARN_ON to catch errors of not cleaning devlink objects
  2019-02-08 17:30 ` David Ahern
@ 2019-02-08 18:01   ` Parav Pandit
  2019-02-08 21:09     ` Parav Pandit
  0 siblings, 1 reply; 4+ messages in thread
From: Parav Pandit @ 2019-02-08 18:01 UTC (permalink / raw)
  To: David Ahern, netdev, davem



> -----Original Message-----
> From: David Ahern <dsahern@gmail.com>
> Sent: Friday, February 8, 2019 11:30 AM
> To: Parav Pandit <parav@mellanox.com>; netdev@vger.kernel.org;
> davem@davemloft.net
> Subject: Re: [PATCH net-next] devlink: Add WARN_ON to catch errors of not
> cleaning devlink objects
> 
> On 2/8/19 8:22 AM, Parav Pandit wrote:
> > Add WARN_ON to make sure that all sub objects of a devlink device are
> > cleanedup before freeing the devlink device.
> > This helps to catch any driver bugs.
> >
> > Signed-off-by: Parav Pandit <parav@mellanox.com>
> > Acked-by: Jiri Pirko <jiri@mellanox.com>
> > ---
> >  net/core/devlink.c | 7 +++++++
> >  1 file changed, 7 insertions(+)
> >
> > diff --git a/net/core/devlink.c b/net/core/devlink.c index
> > cd0d393..5e2ef5a 100644
> > --- a/net/core/devlink.c
> > +++ b/net/core/devlink.c
> > @@ -4229,6 +4229,13 @@ void devlink_unregister(struct devlink *devlink)
> >   */
> >  void devlink_free(struct devlink *devlink)  {
> > +	WARN_ON(!list_empty(&devlink->port_list));
> > +	WARN_ON(!list_empty(&devlink->sb_list));
> > +	WARN_ON(!list_empty(&devlink->dpipe_table_list));
> > +	WARN_ON(!list_empty(&devlink->resource_list));
> > +	WARN_ON(!list_empty(&devlink->param_list));
> > +	WARN_ON(!list_empty(&devlink->region_list));
> > +
> >  	kfree(devlink);
> >  }
> >  EXPORT_SYMBOL_GPL(devlink_free);
> >
> 
> reporter_list was just added which brings up the maintenance question:
> If you are going to do this you might want a comment in
> include/net/devlink.h to remind folks to update this function as relevant.
I see. Make sense. Adding reporter_list and updating devlink.h, too for comment in v1.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: [PATCH net-next] devlink: Add WARN_ON to catch errors of not cleaning devlink objects
  2019-02-08 18:01   ` Parav Pandit
@ 2019-02-08 21:09     ` Parav Pandit
  0 siblings, 0 replies; 4+ messages in thread
From: Parav Pandit @ 2019-02-08 21:09 UTC (permalink / raw)
  To: Parav Pandit, David Ahern, netdev, davem



> -----Original Message-----
> From: netdev-owner@vger.kernel.org <netdev-owner@vger.kernel.org> On
> Behalf Of Parav Pandit
> Sent: Friday, February 8, 2019 12:01 PM
> To: David Ahern <dsahern@gmail.com>; netdev@vger.kernel.org;
> davem@davemloft.net
> Subject: RE: [PATCH net-next] devlink: Add WARN_ON to catch errors of not
> cleaning devlink objects
> 
> 
> 
> > -----Original Message-----
> > From: David Ahern <dsahern@gmail.com>
> > Sent: Friday, February 8, 2019 11:30 AM
> > To: Parav Pandit <parav@mellanox.com>; netdev@vger.kernel.org;
> > davem@davemloft.net
> > Subject: Re: [PATCH net-next] devlink: Add WARN_ON to catch errors of
> > not cleaning devlink objects
> >
> > On 2/8/19 8:22 AM, Parav Pandit wrote:
> > > Add WARN_ON to make sure that all sub objects of a devlink device
> > > are cleanedup before freeing the devlink device.
> > > This helps to catch any driver bugs.
> > >
> > > Signed-off-by: Parav Pandit <parav@mellanox.com>
> > > Acked-by: Jiri Pirko <jiri@mellanox.com>
> > > ---
> > >  net/core/devlink.c | 7 +++++++
> > >  1 file changed, 7 insertions(+)
> > >
> > > diff --git a/net/core/devlink.c b/net/core/devlink.c index
> > > cd0d393..5e2ef5a 100644
> > > --- a/net/core/devlink.c
> > > +++ b/net/core/devlink.c
> > > @@ -4229,6 +4229,13 @@ void devlink_unregister(struct devlink
> *devlink)
> > >   */
> > >  void devlink_free(struct devlink *devlink)  {
> > > +	WARN_ON(!list_empty(&devlink->port_list));
> > > +	WARN_ON(!list_empty(&devlink->sb_list));
> > > +	WARN_ON(!list_empty(&devlink->dpipe_table_list));
> > > +	WARN_ON(!list_empty(&devlink->resource_list));
> > > +	WARN_ON(!list_empty(&devlink->param_list));
> > > +	WARN_ON(!list_empty(&devlink->region_list));
> > > +
> > >  	kfree(devlink);
> > >  }
> > >  EXPORT_SYMBOL_GPL(devlink_free);
> > >
> >
> > reporter_list was just added which brings up the maintenance question:
> > If you are going to do this you might want a comment in
> > include/net/devlink.h to remind folks to update this function as relevant.
> I see. Make sense. Adding reporter_list and updating devlink.h, too for
> comment in v1.
I think its little too much to add such a generic comment in devlink.h for lists.
My tree was bit old and missed out the reporter_list entry because we first test on internal trees.
I updated my tree to avoid such problem in future.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-02-08 21:09 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-08 16:22 [PATCH net-next] devlink: Add WARN_ON to catch errors of not cleaning devlink objects Parav Pandit
2019-02-08 17:30 ` David Ahern
2019-02-08 18:01   ` Parav Pandit
2019-02-08 21:09     ` Parav Pandit

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).