Thread (9 messages) read the whole thread 9 messages, 2 authors, 2021-09-19

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).
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help