net: dsa: b53: allow leaky reserved multicast
authorJonas Gorski <jonas.gorski@gmail.com>
Tue, 29 Apr 2025 20:17:00 +0000 (22:17 +0200)
committerJakub Kicinski <kuba@kernel.org>
Thu, 8 May 2025 02:30:34 +0000 (19:30 -0700)
Allow reserved multicast to ignore VLAN membership so STP and other
management protocols work without a PVID VLAN configured when using a
vlan aware bridge.

Fixes: 967dd82ffc52 ("net: dsa: b53: Add support for Broadcom RoboSwitch")
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-2-jonas.gorski@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/dsa/b53/b53_common.c

index e5ba718979064bfb7914bfdf5d0f4c256714d7be..62866165ad03c332449cd47335c2663c605fe626 100644 (file)
@@ -373,9 +373,11 @@ static void b53_enable_vlan(struct b53_device *dev, int port, bool enable,
                b53_read8(dev, B53_VLAN_PAGE, B53_VLAN_CTRL5, &vc5);
        }
 
+       vc1 &= ~VC1_RX_MCST_FWD_EN;
+
        if (enable) {
                vc0 |= VC0_VLAN_EN | VC0_VID_CHK_EN | VC0_VID_HASH_VID;
-               vc1 |= VC1_RX_MCST_UNTAG_EN | VC1_RX_MCST_FWD_EN;
+               vc1 |= VC1_RX_MCST_UNTAG_EN;
                vc4 &= ~VC4_ING_VID_CHECK_MASK;
                if (enable_filtering) {
                        vc4 |= VC4_ING_VID_VIO_DROP << VC4_ING_VID_CHECK_S;
@@ -393,7 +395,7 @@ static void b53_enable_vlan(struct b53_device *dev, int port, bool enable,
 
        } else {
                vc0 &= ~(VC0_VLAN_EN | VC0_VID_CHK_EN | VC0_VID_HASH_VID);
-               vc1 &= ~(VC1_RX_MCST_UNTAG_EN | VC1_RX_MCST_FWD_EN);
+               vc1 &= ~VC1_RX_MCST_UNTAG_EN;
                vc4 &= ~VC4_ING_VID_CHECK_MASK;
                vc5 &= ~VC5_DROP_VTABLE_MISS;