Message ID | 20210621085437.25777-1-eldargasanov2@gmail.com |
---|---|
State | Superseded |
Headers | show |
Series | mv88e6xxx: fixed adding vlan 0 | expand |
On Mon, Jun 21, 2021 at 11:54:38AM +0300, Eldar Gasanov wrote: > 8021q module adds vlan 0 to all interfaces when it starts. > When 8021q module is loaded it isn't possible to create bond > with mv88e6xxx interfaces, bonding module dipslay error > "Couldn't add bond vlan ids", because it tries to add vlan 0 > to slave interfaces. > > There is unexpected behavior in the switch. When a PVID > is assigned to a port the switch changes VID to PVID > in ingress frames with VID 0 on the port. Expected > that the switch doesn't assign PVID to tagged frames > with VID 0. But there isn't a way to change this behavior > in the switch. > > Signed-off-by: Eldar Gasanov <eldargasanov2@gmail.com> > --- > drivers/net/dsa/mv88e6xxx/chip.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c > index eca285aaf72f..961fa6b75cad 100644 > --- a/drivers/net/dsa/mv88e6xxx/chip.c > +++ b/drivers/net/dsa/mv88e6xxx/chip.c > @@ -1618,9 +1618,6 @@ static int mv88e6xxx_port_check_hw_vlan(struct dsa_switch *ds, int port, > struct mv88e6xxx_vtu_entry vlan; > int i, err; > > - if (!vid) > - return -EOPNOTSUPP; > - > /* DSA and CPU ports have to be members of multiple vlans */ > if (dsa_is_dsa_port(ds, port) || dsa_is_cpu_port(ds, port)) > return 0; > @@ -2109,6 +2106,9 @@ static int mv88e6xxx_port_vlan_add(struct dsa_switch *ds, int port, > u8 member; > int err; > > + if (!vlan->vid) > + return 0; > + > err = mv88e6xxx_port_vlan_prepare(ds, port, vlan); > if (err) > return err; > -- > 2.25.1 > Fixes: 57e661aae6a8 ("net: dsa: mv88e6xxx: Link aggregation support") because that's when this started becoming a problem. and the patch should go to "net". Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
On 6/21/21 2:50 PM, patchwork-bot+netdevbpf@kernel.org wrote: > Hello: > > This patch was applied to netdev/net.git (refs/heads/master): > > On Mon, 21 Jun 2021 11:54:38 +0300 you wrote: >> 8021q module adds vlan 0 to all interfaces when it starts. >> When 8021q module is loaded it isn't possible to create bond >> with mv88e6xxx interfaces, bonding module dipslay error >> "Couldn't add bond vlan ids", because it tries to add vlan 0 >> to slave interfaces. >> >> There is unexpected behavior in the switch. When a PVID >> is assigned to a port the switch changes VID to PVID >> in ingress frames with VID 0 on the port. Expected >> that the switch doesn't assign PVID to tagged frames >> with VID 0. But there isn't a way to change this behavior >> in the switch. >> >> [...] > > Here is the summary with links: > - mv88e6xxx: fixed adding vlan 0 > https://git.kernel.org/netdev/net/c/b8b79c414eca This version would ideally have been applied instead: https://lore.kernel.org/netdev/20210621134703.33933-1-eldargasanov2@gmail.com/
diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c index eca285aaf72f..961fa6b75cad 100644 --- a/drivers/net/dsa/mv88e6xxx/chip.c +++ b/drivers/net/dsa/mv88e6xxx/chip.c @@ -1618,9 +1618,6 @@ static int mv88e6xxx_port_check_hw_vlan(struct dsa_switch *ds, int port, struct mv88e6xxx_vtu_entry vlan; int i, err; - if (!vid) - return -EOPNOTSUPP; - /* DSA and CPU ports have to be members of multiple vlans */ if (dsa_is_dsa_port(ds, port) || dsa_is_cpu_port(ds, port)) return 0; @@ -2109,6 +2106,9 @@ static int mv88e6xxx_port_vlan_add(struct dsa_switch *ds, int port, u8 member; int err; + if (!vlan->vid) + return 0; + err = mv88e6xxx_port_vlan_prepare(ds, port, vlan); if (err) return err;
8021q module adds vlan 0 to all interfaces when it starts. When 8021q module is loaded it isn't possible to create bond with mv88e6xxx interfaces, bonding module dipslay error "Couldn't add bond vlan ids", because it tries to add vlan 0 to slave interfaces. There is unexpected behavior in the switch. When a PVID is assigned to a port the switch changes VID to PVID in ingress frames with VID 0 on the port. Expected that the switch doesn't assign PVID to tagged frames with VID 0. But there isn't a way to change this behavior in the switch. Signed-off-by: Eldar Gasanov <eldargasanov2@gmail.com> --- drivers/net/dsa/mv88e6xxx/chip.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)