Skip to content

Commit adc3a9c

Browse files
viviendavem330
authored andcommitted
net: dsa: mv88e6xxx: do not skip ports on VLAN del
The mv88e6xxx driver currently tries to be smart and remove by itself a VLAN entry from the VTU when the driven switch sees no user ports as members of the VLAN. This is bad in a multi-chip switch fabric, since a chip in between others may have no bridge port members, but still needs to be aware of the VID in order to correctly pass frames in the data path. Now that the DSA core explicitly manages DSA and CPU ports, do not skip them when checking remaining VLAN members. Signed-off-by: Vivien Didelot <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 553a768 commit adc3a9c

File tree

1 file changed

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

1 file changed

+0
-4
lines changed

drivers/net/dsa/mv88e6xxx/chip.c

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1325,7 +1325,6 @@ static void mv88e6xxx_port_vlan_add(struct dsa_switch *ds, int port,
13251325
static int _mv88e6xxx_port_vlan_del(struct mv88e6xxx_chip *chip,
13261326
int port, u16 vid)
13271327
{
1328-
struct dsa_switch *ds = chip->ds;
13291328
struct mv88e6xxx_vtu_entry vlan;
13301329
int i, err;
13311330

@@ -1342,9 +1341,6 @@ static int _mv88e6xxx_port_vlan_del(struct mv88e6xxx_chip *chip,
13421341
/* keep the VLAN unless all ports are excluded */
13431342
vlan.valid = false;
13441343
for (i = 0; i < mv88e6xxx_num_ports(chip); ++i) {
1345-
if (dsa_is_cpu_port(ds, i) || dsa_is_dsa_port(ds, i))
1346-
continue;
1347-
13481344
if (vlan.member[i] != GLOBAL_VTU_DATA_MEMBER_TAG_NON_MEMBER) {
13491345
vlan.valid = true;
13501346
break;

0 commit comments

Comments
 (0)