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 <olte...@gmail.com>
> ---
> 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

Reply via email to