]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
net: dsa: b53: fix learning on VLAN unaware bridges
authorJonas Gorski <jonas.gorski@gmail.com>
Tue, 29 Apr 2025 20:17:09 +0000 (22:17 +0200)
committerJakub Kicinski <kuba@kernel.org>
Thu, 8 May 2025 02:30:35 +0000 (19:30 -0700)
When VLAN filtering is off, we configure the switch to forward, but not
learn on VLAN table misses. This effectively disables learning while not
filtering.

Fix this by switching to forward and learn. Setting the learning disable
register will still control whether learning actually happens.

Fixes: dad8d7c6452b ("net: dsa: b53: Properly account for VLAN filtering")
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
Tested-by: Florian Fainelli <florian.fainelli@broadcom.com>
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
Link: https://patch.msgid.link/20250429201710.330937-11-jonas.gorski@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/dsa/b53/b53_common.c

index 0a7749b416f7775700624496bb5427d8dbe4b14b..a2c0b44fc6bef16b1716ce3d9d20f85829b89240 100644 (file)
@@ -383,7 +383,7 @@ static void b53_enable_vlan(struct b53_device *dev, int port, bool enable,
                        vc4 |= VC4_ING_VID_VIO_DROP << VC4_ING_VID_CHECK_S;
                        vc5 |= VC5_DROP_VTABLE_MISS;
                } else {
-                       vc4 |= VC4_ING_VID_VIO_FWD << VC4_ING_VID_CHECK_S;
+                       vc4 |= VC4_NO_ING_VID_CHK << VC4_ING_VID_CHECK_S;
                        vc5 &= ~VC5_DROP_VTABLE_MISS;
                }