Skip to content

Commit 1fb7419

Browse files
Russell Kingkuba-moo
authored andcommitted
net: dsa: mv88e6xxx: fix vlan setup
DSA assumes that a bridge which has vlan filtering disabled is not vlan aware, and ignores all vlan configuration. However, the kernel software bridge code allows configuration in this state. This causes the kernel's idea of the bridge vlan state and the hardware state to disagree, so "bridge vlan show" indicates a correct configuration but the hardware lacks all configuration. Even worse, enabling vlan filtering on a DSA bridge immediately blocks all traffic which, given the output of "bridge vlan show", is very confusing. Allow the VLAN configuration to be updated on Marvell DSA bridges, otherwise we end up cutting all traffic when enabling vlan filtering. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Tested-by: Vladimir Oltean <olteanv@gmail.com> Link: https://lore.kernel.org/r/E1kYAU3-00071C-1G@rmk-PC.armlinux.org.uk Signed-off-by: Jakub Kicinski <kuba@kernel.org>
1 parent 85bec4b commit 1fb7419

File tree

1 file changed

+1
-0
lines changed
  • drivers/net/dsa/mv88e6xxx

1 file changed

+1
-0
lines changed

drivers/net/dsa/mv88e6xxx/chip.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2851,6 +2851,7 @@ static int mv88e6xxx_setup(struct dsa_switch *ds)
28512851

28522852
chip->ds = ds;
28532853
ds->slave_mii_bus = mv88e6xxx_default_mdio_bus(chip);
2854+
ds->configure_vlan_while_not_filtering = true;
28542855

28552856
mv88e6xxx_reg_lock(chip);
28562857

0 commit comments

Comments
 (0)