Messages in this thread Patch in this message | | | From | Lino Sanfilippo <> | Subject | [PATCH 2/3] net: dsa: microchip: provide the function ksz_switch_shutdown() | Date | Thu, 9 Sep 2021 11:53:23 +0200 |
| |
Provide a function ksz_switch_shutdown() which properly shuts down the KSZ switch by stopping the mib_read worker thread and then tearing down the DSA tree.
Signed-off-by: Lino Sanfilippo <LinoSanfilippo@gmx.de> --- drivers/net/dsa/microchip/ksz_common.c | 13 +++++++++++++ drivers/net/dsa/microchip/ksz_common.h | 1 + 2 files changed, 14 insertions(+)
diff --git a/drivers/net/dsa/microchip/ksz_common.c b/drivers/net/dsa/microchip/ksz_common.c index 1542bfb8b5e5..aaa5c45f4823 100644 --- a/drivers/net/dsa/microchip/ksz_common.c +++ b/drivers/net/dsa/microchip/ksz_common.c @@ -446,6 +446,19 @@ int ksz_switch_register(struct ksz_device *dev, } EXPORT_SYMBOL(ksz_switch_register); +void ksz_switch_shutdown(struct ksz_device *dev) +{ + struct dsa_switch *ds = dev->ds; + + /* timer started */ + if (dev->mib_read_interval) { + cancel_delayed_work_sync(&dev->mib_read); + dev->mib_read_interval = 0; + } + dsa_tree_shutdown(ds->dst); +} +EXPORT_SYMBOL(ksz_switch_shutdown); + void ksz_switch_remove(struct ksz_device *dev) { /* timer started */ diff --git a/drivers/net/dsa/microchip/ksz_common.h b/drivers/net/dsa/microchip/ksz_common.h index 1597c63988b4..9986f6c4c1e7 100644 --- a/drivers/net/dsa/microchip/ksz_common.h +++ b/drivers/net/dsa/microchip/ksz_common.h @@ -143,6 +143,7 @@ struct ksz_device *ksz_switch_alloc(struct device *base, void *priv); int ksz_switch_register(struct ksz_device *dev, const struct ksz_dev_ops *ops); void ksz_switch_remove(struct ksz_device *dev); +void ksz_switch_shutdown(struct ksz_device *dev); int ksz8_switch_register(struct ksz_device *dev); int ksz9477_switch_register(struct ksz_device *dev); -- 2.33.0
| |