Re: [PATCH 0/3] Fix for KSZ DSA switch shutdown
From: Vladimir Oltean <olteanv@gmail.com>
Date: 2021-09-11 11:44:38
Also in:
lkml
On Fri, Sep 10, 2021 at 05:58:52PM +0300, Vladimir Oltean wrote:
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.
So to answer my own question, there is a comment above device_link_add: * A side effect of the link creation is re-ordering of dpm_list and the * devices_kset list by moving the consumer device and all devices depending * on it to the ends of these lists (that does not happen to devices that have * not been registered when this function is called). so the fact that DSA uses device_link_add towards its master is not exactly for nothing. device_shutdown() walks devices_kset from the back, so this is our guarantee that DSA's shutdown happens before the master's shutdown. So these patches should be okay. Any other comments? If not, I will formally submit them tomorrow towards the net tree.