Messages in this thread | | | Date | Thu, 9 Sep 2021 13:14:51 +0300 | From | Vladimir Oltean <> | Subject | Re: [PATCH 0/3] Fix for KSZ DSA switch shutdown |
| |
On Thu, Sep 09, 2021 at 11:53:21AM +0200, Lino Sanfilippo wrote: > This patch series fixes a system hang I got each time i tried to shutdown > or reboot a system that uses a KSZ9897 as a DSA switch with a broadcom > GENET network device as the DSA master device. At the time the system hangs > the message "unregister_netdevice: waiting for eth0 to become free. Usage > count = 2." is dumped periodically to the console. > > After some investigation I found the reason to be unreleased references to > the master device which are still held by the slave devices at the time the > system is shut down (I have two slave devices in use). > > While these references are supposed to be released in ksz_switch_remove() > this function never gets the chance to be called due to the system hang at > the master device deregistration which happens before ksz_switch_remove() > is called. > > The fix is to make sure that the master device references are already > released when the device is unregistered. For this reason PATCH1 provides > a new function dsa_tree_shutdown() that can be called by DSA drivers to > untear the DSA switch at shutdown. PATCH2 uses this function in a new > helper function for KSZ switches to properly shutdown the KSZ switch. > PATCH 3 uses the new helper function in the KSZ9477 shutdown handler. > > Theses patches have been tested on a Raspberry PI 5.10 kernel with a > KSZ9897. The patches have been adjusted to apply against net-next and are > compile tested with next-next.
Can you try this patch
commit 07b90056cb15ff9877dca0d8f1b6583d1051f724 Author: Vladimir Oltean <vladimir.oltean@nxp.com> Date: Tue Jan 12 01:09:43 2021 +0200
net: dsa: unbind all switches from tree when DSA master unbinds
Currently the following happens when a DSA master driver unbinds while there are DSA switches attached to it:
| |