Subject: Re: [PATCH v2 net-next 02/10] net: dsa: Add teardown callback for drivers

From: Andrew Lunn <[email-masked]>
Date: Mon, 3 Jun 2019 03:07:40 +0200

On Mon, Jun 03, 2019 at 12:39:18AM +0300, Vladimir Oltean wrote:
> This is helpful for e.g. draining per-driver (not per-port) tagger
> queues.
> 
> Signed-off-by: Vladimir Oltean <[email-masked]>
> ---
> Changes in v2:
> 
> Patch is new.
> 
>  include/net/dsa.h | 1 +
>  net/dsa/dsa2.c    | 3 +++
>  2 files changed, 4 insertions(+)
> 
> diff --git a/include/net/dsa.h b/include/net/dsa.h
> index a7f36219904f..4033e0677be4 100644
> --- a/include/net/dsa.h
> +++ b/include/net/dsa.h
> @@ -361,6 +361,7 @@ struct dsa_switch_ops {
>  						  int port);
>  
>  	int	(*setup)(struct dsa_switch *ds);
> +	void	(*teardown)(struct dsa_switch *ds);
>  	u32	(*get_phy_flags)(struct dsa_switch *ds, int port);
>  
>  	/*
> diff --git a/net/dsa/dsa2.c b/net/dsa/dsa2.c
> index b70befe8a3c8..5bd3e9a4c709 100644
> --- a/net/dsa/dsa2.c
> +++ b/net/dsa/dsa2.c
> @@ -407,6 +407,9 @@ static int dsa_switch_setup(struct dsa_switch *ds)
>  
>  static void dsa_switch_teardown(struct dsa_switch *ds)
>  {
> +	if (ds->ops->teardown)
> +		ds->ops->teardown(ds);
> +
>  	if (ds->slave_mii_bus && ds->ops->phy_read)
>  		mdiobus_unregister(ds->slave_mii_bus);
>  

Hi Vladimir

If we want to keep with symmetric with dsa_switch_setup(), this
teardown should be added after dsa_switch_unregister_notifier() and
before devlink_unregister().

       Andrew