Re: [PATCH 0/3] Fix for KSZ DSA switch shutdown
From: Vladimir Oltean <olteanv@gmail.com>
Date: 2021-09-12 20:29:27
Also in:
lkml
On Sun, Sep 12, 2021 at 10:19:24PM +0200, Lino Sanfilippo wrote:
Hi, On 10.09.21 at 16:58, Vladimir Oltean wrote:quoted
On Fri, Sep 10, 2021 at 01:51:56PM +0200, Andrew Lunn wrote:quoted
quoted
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).
Could you post the full kernel output? The picture you've posted is truncated and only shows a WARN_ON in rpi_firmware_transaction and is probably a symptom and not the issue (which is above and not shown).