realtek: net: dsa: configure better brport flags when ports leave the bridge
authorBjørn Mork <bjorn@mork.no>
Sat, 5 Mar 2022 09:36:07 +0000 (10:36 +0100)
committerStijn Tintel <stijn@linux-ipv6.be>
Sun, 6 Mar 2022 20:01:04 +0000 (22:01 +0200)
commit0890fb2df4d89f8792c00859d68641f50df2b4f2
tree39f4fc6986370da4debcd426cda312e212e39fde
parentf7f9e6bd20bbdca6f136d469d1712e6b124635b4
realtek: net: dsa: configure better brport flags when ports leave the bridge

Ensures that the DSA driver sets exactly the same default flags as the
bridge when a port joins or leaves.  Without this we end up with a
confusing flag mismatch, where DSA and bridge ports use different sets
of flags.

This is critical as the "learning" mismatch will be harmful to the
network, causing all traffic to be flooded on all ports.

The original commit was buggy, trying to set the flags one-by-one in a
loop.  This was not supported by the API and the end result was that
all but the last flag were cleared.  This bug was implicitly fixed
upstream by commit e18f4c18ab5b ("net: switchdev: pass flags and mask
to both {PRE_,}BRIDGE_FLAGS attributes").

This is a minimum temporary stop measure fix for the critical lack of
"learning" only.  The major API change associated with a full v5.12+
backport is neither required nor wanted. A simpler fix, moving the
call to dsa_port_bridge_flags() out of the loop,  has therefore been
merged into this modified backport.

Fixes: afa3ab54c03d ("realtek: Backport bridge configuration for DSA")
Signed-off-by: Bjørn Mork <bjorn@mork.no>
Acked-by: Daniel Golle <daniel@makrotopia.org>
Tested-by: Stijn Tintel <stijn@linux-ipv6.be>
[fix typos in commit message]
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
target/linux/realtek/patches-5.10/713-v5.12-net-dsa-configure-better-brport-flags-when-ports-lea.patch [new file with mode: 0644]