linux/drivers/net/dsa
Vladimir Oltean fe4053078c net: dsa: microchip: ksz8863: be compatible with masters which unregister on shutdown
Since commit 2f1e8ea726 ("net: dsa: link interfaces with the DSA
master to get rid of lockdep warnings"), DSA gained a requirement which
it did not fulfill, which is to unlink itself from the DSA master at
shutdown time.

Since the Microchip sub-driver for KSZ8863 was introduced after the bad
commit, it has never worked with DSA masters which decide to unregister
their net_device on shutdown, effectively hanging the reboot process.
To fix that, we need to call dsa_switch_shutdown.

Since this driver expects the MDIO bus to be backed by mdio_bitbang, I
don't think there is currently any MDIO bus driver which implements its
->shutdown by redirecting it to ->remove, but in any case, to be
compatible with that pattern, it is necessary to implement an "if this
then not that" scheme, to avoid ->remove and ->shutdown from being
called both for the same struct device.

Fixes: 60a3647600 ("net: dsa: microchip: Add Microchip KSZ8863 SMI based driver support")
Link: https://lore.kernel.org/netdev/20210909095324.12978-1-LinoSanfilippo@gmx.de/
Reported-by: Lino Sanfilippo <LinoSanfilippo@gmx.de>
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2021-09-19 12:08:37 +01:00
..
b53 net: dsa: be compatible with masters which unregister on shutdown 2021-09-19 12:08:37 +01:00
hirschmann net: dsa: hellcreek: be compatible with masters which unregister on shutdown 2021-09-19 12:08:37 +01:00
microchip net: dsa: microchip: ksz8863: be compatible with masters which unregister on shutdown 2021-09-19 12:08:37 +01:00
mv88e6xxx net: dsa: be compatible with masters which unregister on shutdown 2021-09-19 12:08:37 +01:00
ocelot net: dsa: be compatible with masters which unregister on shutdown 2021-09-19 12:08:37 +01:00
qca net: dsa: be compatible with masters which unregister on shutdown 2021-09-19 12:08:37 +01:00
sja1105 net: dsa: be compatible with masters which unregister on shutdown 2021-09-19 12:08:37 +01:00
xrs700x net: dsa: xrs700x: forward HSR supervision frames 2021-06-16 12:17:03 -07:00
bcm_sf2_cfp.c net: dsa: propagate extack to .port_vlan_add 2021-02-14 17:38:11 -08:00
bcm_sf2_regs.h net: dsa: bcm_sf2: fix BCM4908 RGMII reg(s) 2021-03-18 14:44:05 -07:00
bcm_sf2.c net: dsa: be compatible with masters which unregister on shutdown 2021-09-19 12:08:37 +01:00
bcm_sf2.h net: dsa: bcm_sf2: setup BCM4908 internal crossbar 2021-03-12 17:06:37 -08:00
dsa_loop_bdinfo.c
dsa_loop.c net: dsa: be compatible with masters which unregister on shutdown 2021-09-19 12:08:37 +01:00
dsa_loop.h
Kconfig dsa: simplify Kconfig symbols and dependencies 2021-03-22 12:15:37 -07:00
lan9303_i2c.c net: dsa: be compatible with masters which unregister on shutdown 2021-09-19 12:08:37 +01:00
lan9303_mdio.c net: dsa: be compatible with masters which unregister on shutdown 2021-09-19 12:08:37 +01:00
lan9303-core.c net: dsa: be compatible with masters which unregister on shutdown 2021-09-19 12:08:37 +01:00
lan9303.h net: dsa: be compatible with masters which unregister on shutdown 2021-09-19 12:08:37 +01:00
lantiq_gswip.c net: dsa: be compatible with masters which unregister on shutdown 2021-09-19 12:08:37 +01:00
lantiq_pce.h
Makefile net: dsa: add Arrow SpeedChips XRS700x driver 2021-01-15 15:37:37 -08:00
mt7530.c net: dsa: be compatible with masters which unregister on shutdown 2021-09-19 12:08:37 +01:00
mt7530.h net: dsa: mt7530: manually set up VLAN ID 0 2021-08-25 11:09:31 +01:00
mv88e6060.c net: dsa: be compatible with masters which unregister on shutdown 2021-09-19 12:08:37 +01:00
mv88e6060.h
qca8k.c net: dsa: be compatible with masters which unregister on shutdown 2021-09-19 12:08:37 +01:00
qca8k.h net: dsa: qca8k: add support for internal phy and internal mdio 2021-05-14 15:30:22 -07:00
realtek-smi-core.c net: dsa: be compatible with masters which unregister on shutdown 2021-09-19 12:08:37 +01:00
realtek-smi-core.h net: dsa: propagate extack to .port_vlan_filtering 2021-02-14 17:38:12 -08:00
rtl8366.c net: dsa: propagate extack to .port_vlan_filtering 2021-02-14 17:38:12 -08:00
rtl8366rb.c net: dsa: rtl8366rb: standardize init jam tables 2021-01-27 20:21:20 -08:00
vitesse-vsc73xx-core.c net: dsa: be compatible with masters which unregister on shutdown 2021-09-19 12:08:37 +01:00
vitesse-vsc73xx-platform.c net: dsa: be compatible with masters which unregister on shutdown 2021-09-19 12:08:37 +01:00
vitesse-vsc73xx-spi.c net: dsa: be compatible with masters which unregister on shutdown 2021-09-19 12:08:37 +01:00
vitesse-vsc73xx.h net: dsa: be compatible with masters which unregister on shutdown 2021-09-19 12:08:37 +01:00