mt7530 mt7530_fdb_write only set ivl bit vid larger than 1
authorEric Woudstra <ericwouds@gmail.com>
Mon, 19 Jul 2021 18:23:57 +0000 (20:23 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 20 Jul 2021 14:01:14 +0000 (07:01 -0700)
Fixes my earlier patch which broke vlan unaware bridges.

The IVL bit now only gets set for vid's larger than 1.

Fixes: 11d8d98cbeef ("mt7530 fix mt7530_fdb_write vid missing ivl bit")
Signed-off-by: Eric Woudstra <ericwouds@gmail.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/mt7530.c

index 9e4df35..69f21b7 100644 (file)
@@ -366,7 +366,8 @@ mt7530_fdb_write(struct mt7530_priv *priv, u16 vid,
        int i;
 
        reg[1] |= vid & CVID_MASK;
-       reg[1] |= ATA2_IVL;
+       if (vid > 1)
+               reg[1] |= ATA2_IVL;
        reg[2] |= (aging & AGE_TIMER_MASK) << AGE_TIMER;
        reg[2] |= (port_mask & PORT_MAP_MASK) << PORT_MAP;
        /* STATIC_ENT indicate that entry is static wouldn't