On Sun, Oct 09, 2022 at 06:06:48PM -0400, Sasha Levin wrote: > From: Vladimir Oltean <vladimir.oltean@xxxxxxx> > > [ Upstream commit f41ec1fd1c20e2a4e60a4ab8490b3e63423c0a8a ] > > The fact that the tagging protocol is set and queried from the > /sys/class/net/<dsa-master>/dsa/tagging file is a bit of a quirk from > the single CPU port days which isn't aging very well now that DSA can > have more than a single CPU port. This is because the tagging protocol > is a switch property, yet in the presence of multiple CPU ports it can > be queried and set from multiple sysfs files, all of which are handled > by the same implementation. > > The current logic ensures that the net device whose sysfs file we're > changing the tagging protocol through must be down. That net device is > the DSA master, and this is fine for single DSA master / CPU port setups. > > But exactly because the tagging protocol is per switch [ tree, in fact ] > and not per DSA master, this isn't fine any longer with multiple CPU > ports, and we must iterate through the tree and find all DSA masters, > and make sure that all of them are down. > > Signed-off-by: Vladimir Oltean <vladimir.oltean@xxxxxxx> > Reviewed-by: Florian Fainelli <f.fainelli@xxxxxxxxx> > Signed-off-by: Paolo Abeni <pabeni@xxxxxxxxxx> > Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx> > --- Not needed for stable kernels, please drop, thanks.