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

From: Andrew Lunn
Date: Sun Jun 02 2019 - 21:11:29 EST


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 <olteanv@xxxxxxxxx>
> ---
> 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