On Wed Mar 24 2021, Vladimir Oltean wrote: > From: Vladimir Oltean > > DSA is aware of switches with global VLAN filtering since the blamed > commit, but it makes a bad decision when multiple bridges are spanning > the same switch: > > ip link add br0 type bridge vlan_filtering 1 > ip link add br1 type bridge vlan_filtering 1 > ip link set swp2 master br0 > ip link set swp3 master br0 > ip link set swp4 master br1 > ip link set swp5 master br1 > ip link set swp5 nomaster > ip link set swp4 nomaster > [138665.939930] sja1105 spi0.1: port 3: dsa_core: VLAN filtering is a global setting > [138665.947514] DSA: failed to notify DSA_NOTIFIER_BRIDGE_LEAVE > > When all ports leave br1, DSA blindly attempts to disable VLAN filtering > on the switch, ignoring the fact that br0 still exists and is VLAN-aware > too. It fails while doing that. > > This patch checks whether any port exists at all and is under a > VLAN-aware bridge. > > Fixes: d371b7c92d19 ("net: dsa: Unset vlan_filtering when ports leave the bridge") > Signed-off-by: Vladimir Oltean > Tested-by: Florian Fainelli > Reviewed-by: Florian Fainelli Reviewed-by: Kurt Kanzenbach