Hi, On 10.09.21 at 16:58, Vladimir Oltean wrote: > On Fri, Sep 10, 2021 at 01:51:56PM +0200, Andrew Lunn wrote: >>> It does not really scale but we also don't have that many DSA masters to >>> support, I believe I can name them all: bcmgenet, stmmac, bcmsysport, enetc, >>> mv643xx_eth, cpsw, macb. >> >> fec, mvneta, mvpp2, i210/igb. > > I can probably double that list only with Freescale/NXP Ethernet > drivers, some of which are not even submitted to mainline. To name some > mainline drivers: gianfar, dpaa-eth, dpaa2-eth, dpaa2-switch, ucc_geth. > Also consider that DSA/switchdev drivers can also be DSA masters of > their own, we have boards doing that too. > > Anyway, I've decided to at least try and accept the fact that DSA > masters will unregister their net_device on shutdown, and attempt to do > something sane for all DSA switches in that case. > > Attached are two patches (they are fairly big so I won't paste them > inline, and I would like initial feedback before posting them to the > list). > > As mentioned in those patches, the shutdown ordering guarantee is still > very important, I still have no clue what goes on there, what we need to > do, etc. > I tested these patches with my 5.10 kernel (based on Gregs 5.10.27 stable kernel) and while I do not see the message "unregister_netdevice: waiting for eth0 to become free. Usage count = 2." any more the shutdown/reboot hangs, too. After a few attempts without any error messages on the console I was able to get a stack trace. Something still seems to go wrong in bcm2835_spi_shutdown() (see attachment). I have not had the time yet to investigate this further (or to test the patches with a newer kernel). Regards, Lino