]> git.baikalelectronics.ru Git - kernel.git/commitdiff
net: dsa: b53: Ensure the default VID is untagged
authorFlorian Fainelli <f.fainelli@gmail.com>
Fri, 14 Feb 2020 23:26:19 +0000 (15:26 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 5 Mar 2020 15:43:31 +0000 (16:43 +0100)
[ Upstream commit fbc546f54e2e6007ac1f6347f7aebb5a7e553d2e ]

We need to ensure that the default VID is untagged otherwise the switch
will be sending tagged frames and the results can be problematic. This
is especially true with b53 switches that use VID 0 as their default
VLAN since VID 0 has a special meaning.

Fixes: f35978178d43 ("net: dsa: b53: Fix default VLAN ID")
Fixes: bd43777af101 ("net: dsa: Add ndo_vlan_rx_{add, kill}_vid implementation")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/dsa/b53/b53_common.c

index 7ed667b304d1f2c821b051ba3c4fd7b320c7f2a6..d618650533b6592a8f053cbcaccfc0d3747718a8 100644 (file)
@@ -1353,6 +1353,9 @@ void b53_vlan_add(struct dsa_switch *ds, int port,
 
                b53_get_vlan_entry(dev, vid, vl);
 
+               if (vid == 0 && vid == b53_default_pvid(dev))
+                       untagged = true;
+
                vl->members |= BIT(port);
                if (untagged && !dsa_is_cpu_port(ds, port))
                        vl->untag |= BIT(port);