Message ID | 20210909095324.12978-3-LinoSanfilippo@gmx.de (mailing list archive) |
---|---|
State | Not Applicable |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | Fix for KSZ DSA switch shutdown | expand |
Context | Check | Description |
---|---|---|
netdev/cover_letter | success | Link |
netdev/fixes_present | success | Link |
netdev/patch_count | success | Link |
netdev/tree_selection | success | Guessed tree name to be net-next |
netdev/subject_prefix | warning | Target tree name not specified in the subject |
netdev/cc_maintainers | success | CCed 9 of 9 maintainers |
netdev/source_inline | success | Was 0 now: 0 |
netdev/verify_signedoff | success | Link |
netdev/module_param | success | Was 0 now: 0 |
netdev/build_32bit | success | Errors and warnings before: 2 this patch: 0 |
netdev/kdoc | success | Errors and warnings before: 0 this patch: 0 |
netdev/verify_fixes | success | Link |
netdev/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 26 lines checked |
netdev/build_allmodconfig_warn | success | Errors and warnings before: 0 this patch: 0 |
netdev/header_inline | success | Link |
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);
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(+)