net: dsa: mt7530: Let DSA handle the unsetting of vlan_filtering
authorVladimir Oltean <olteanv@gmail.com>
Sun, 28 Apr 2019 18:45:47 +0000 (21:45 +0300)
committerDavid S. Miller <davem@davemloft.net>
Wed, 1 May 2019 03:05:28 +0000 (23:05 -0400)
The driver, recognizing that the .port_vlan_filtering callback was never
coming after the port left its parent bridge, decided to take that duty
in its own hands. DSA now takes care of this condition, so fix that.

Signed-off-by: Vladimir Oltean <olteanv@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/mt7530.c

index 7357b4fc0185bb986c28c1fde8e0cda0b5d6d07a..3530b6f3842870b0d727133d649b8a3098c7ecdb 100644 (file)
@@ -910,8 +910,6 @@ mt7530_port_bridge_leave(struct dsa_switch *ds, int port,
                           PCR_MATRIX(BIT(MT7530_CPU_PORT)));
        priv->ports[port].pm = PCR_MATRIX(BIT(MT7530_CPU_PORT));
 
-       mt7530_port_set_vlan_unaware(ds, port);
-
        mutex_unlock(&priv->reg_mutex);
 }
 
@@ -1025,6 +1023,8 @@ mt7530_port_vlan_filtering(struct dsa_switch *ds, int port,
                 */
                mt7530_port_set_vlan_aware(ds, port);
                mt7530_port_set_vlan_aware(ds, MT7530_CPU_PORT);
+       } else {
+               mt7530_port_set_vlan_unaware(ds, port);
        }
 
        return 0;