On Thu, Oct 29, 2020 at 04:09:03PM +0000, Russell King wrote:
> 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+ker...@armlinux.org.uk>
> ---

Tested-by: Vladimir Oltean <olte...@gmail.com>

> This is the revised version of the patch that has been waiting a long
> time to fix this issue on the Marvell DSA switches.
> 
>  drivers/net/dsa/mv88e6xxx/chip.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/net/dsa/mv88e6xxx/chip.c 
> b/drivers/net/dsa/mv88e6xxx/chip.c
> index bd297ae7cf9e..72340c17f099 100644
> --- a/drivers/net/dsa/mv88e6xxx/chip.c
> +++ b/drivers/net/dsa/mv88e6xxx/chip.c
> @@ -2851,6 +2851,7 @@ static int mv88e6xxx_setup(struct dsa_switch *ds)
>  
>       chip->ds = ds;
>       ds->slave_mii_bus = mv88e6xxx_default_mdio_bus(chip);
> +     ds->configure_vlan_while_not_filtering = true;
>  
>       mv88e6xxx_reg_lock(chip);
>  
> -- 
> 2.20.1
> 

Reply via email to