net: dsa: b53: Keep CPU port as tagged in all VLANs
Commitc499696e79
("net: dsa: b53: Stop using dev->cpu_port incorrectly") was a bit too trigger happy in removing the CPU port from the VLAN membership because we rely on DSA to program the CPU port VLAN, which it does, except it does not bother itself with tagged/untagged and just usese untagged. Having the CPU port "follow" the user ports tagged/untagged is not great and does not allow for properly differentiating, so keep the CPU port tagged in all VLANs. Reported-by: Gerhard Wiesinger <lists@wiesinger.com> Fixes:c499696e79
("net: dsa: b53: Stop using dev->cpu_port incorrectly") Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
17c357efe5
commit
ca89319483
|
@ -1107,7 +1107,7 @@ void b53_vlan_add(struct dsa_switch *ds, int port,
|
|||
b53_get_vlan_entry(dev, vid, vl);
|
||||
|
||||
vl->members |= BIT(port);
|
||||
if (untagged)
|
||||
if (untagged && !dsa_is_cpu_port(ds, port))
|
||||
vl->untag |= BIT(port);
|
||||
else
|
||||
vl->untag &= ~BIT(port);
|
||||
|
@ -1149,7 +1149,7 @@ int b53_vlan_del(struct dsa_switch *ds, int port,
|
|||
pvid = 0;
|
||||
}
|
||||
|
||||
if (untagged)
|
||||
if (untagged && !dsa_is_cpu_port(ds, port))
|
||||
vl->untag &= ~(BIT(port));
|
||||
|
||||
b53_set_vlan_entry(dev, vid, vl);
|
||||
|
|
Loading…
Reference in a new issue