]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
net: dsa: b53: fix VLAN ID for untagged vlan on bridge leave
authorJonas Gorski <jonas.gorski@gmail.com>
Tue, 29 Apr 2025 20:17:04 +0000 (22:17 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 18 May 2025 06:24:05 +0000 (08:24 +0200)
[ Upstream commit a1c1901c5cc881425cc45992ab6c5418174e9e5a ]

The untagged default VLAN is added to the default vlan, which may be
one, but we modify the VLAN 0 entry on bridge leave.

Fix this to use the correct VLAN entry for the default pvid.

Fixes: fea83353177a ("net: dsa: b53: Fix default VLAN ID")
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-6-jonas.gorski@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/dsa/b53/b53_common.c

index 55893d4e405e889ba40c994dbb6387d0c7294dba..b257757f0b9dcf6d3676ee8abc1c06344f5b6899 100644 (file)
@@ -1967,7 +1967,7 @@ EXPORT_SYMBOL(b53_br_join);
 void b53_br_leave(struct dsa_switch *ds, int port, struct dsa_bridge bridge)
 {
        struct b53_device *dev = ds->priv;
-       struct b53_vlan *vl = &dev->vlans[0];
+       struct b53_vlan *vl;
        s8 cpu_port = dsa_to_port(ds, port)->cpu_dp->index;
        unsigned int i;
        u16 pvlan, reg, pvid;
@@ -1993,6 +1993,7 @@ void b53_br_leave(struct dsa_switch *ds, int port, struct dsa_bridge bridge)
        dev->ports[port].vlan_ctl_mask = pvlan;
 
        pvid = b53_default_pvid(dev);
+       vl = &dev->vlans[pvid];
 
        /* Make this port join all VLANs without VLAN entries */
        if (is58xx(dev)) {