]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
net: dsa: mv88e6xxx: Allow dsa and cpu ports in multiple vlans
authorAndrew Lunn <andrew@lunn.ch>
Mon, 25 Sep 2017 21:32:20 +0000 (23:32 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 28 Sep 2017 16:45:06 +0000 (09:45 -0700)
Ports with the same VLAN must all be in the same bridge. However the
CPU and DSA ports need to be in multiple VLANs spread over multiple
bridges. So exclude them when performing this test.

Fixes: b2f81d304cee ("net: dsa: add CPU and DSA ports as VLAN members")
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/mv88e6xxx/chip.c

index c6678aa9b4ef0716890f8ace36cda4cf609de045..674dab71d71c19b5e56234855544050c8c16a35a 100644 (file)
@@ -1100,6 +1100,10 @@ static int mv88e6xxx_port_check_hw_vlan(struct dsa_switch *ds, int port,
        };
        int i, err;
 
+       /* 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;
+
        if (!vid_begin)
                return -EOPNOTSUPP;