[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20201029212743.qdnfl2bj5trkdhmw@skbuf>
Date: Thu, 29 Oct 2020 23:27:43 +0200
From: Vladimir Oltean <olteanv@...il.com>
To: Russell King <rmk+kernel@...linux.org.uk>
Cc: Andrew Lunn <andrew@...n.ch>,
Heiner Kallweit <hkallweit1@...il.com>,
"David S. Miller" <davem@...emloft.net>, netdev@...r.kernel.org,
Vivien Didelot <vivien.didelot@...il.com>,
Florian Fainelli <f.fainelli@...il.com>,
Jakub Kicinski <kuba@...nel.org>
Subject: Re: [PATCH net-next] net: dsa: mv88e6xxx: fix vlan setup
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+kernel@...linux.org.uk>
> ---
Tested-by: Vladimir Oltean <olteanv@...il.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
>
Powered by blists - more mailing lists