net: dsa: mv88e6xxx: avoid writing the same mode
authorVivien Didelot <vivien.didelot@savoirfairelinux.com>
Mon, 7 Mar 2016 23:24:52 +0000 (18:24 -0500)
committerDavid S. Miller <davem@davemloft.net>
Thu, 10 Mar 2016 21:10:31 +0000 (16:10 -0500)
There is no need to change the 802.1Q port mode for the same value.
Thus avoid such message:

    [  401.954836] dsa dsa@0 lan0: 802.1Q Mode: Disabled (was Disabled)

Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Tested-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/mv88e6xxx.c

index 1aee42d..5f07524 100644 (file)
@@ -1765,16 +1765,21 @@ int mv88e6xxx_port_vlan_filtering(struct dsa_switch *ds, int port,
 
        old = ret & PORT_CONTROL_2_8021Q_MASK;
 
-       ret &= ~PORT_CONTROL_2_8021Q_MASK;
-       ret |= new & PORT_CONTROL_2_8021Q_MASK;
+       if (new != old) {
+               ret &= ~PORT_CONTROL_2_8021Q_MASK;
+               ret |= new & PORT_CONTROL_2_8021Q_MASK;
 
-       ret = _mv88e6xxx_reg_write(ds, REG_PORT(port), PORT_CONTROL_2, ret);
-       if (ret < 0)
-               goto unlock;
+               ret = _mv88e6xxx_reg_write(ds, REG_PORT(port), PORT_CONTROL_2,
+                                          ret);
+               if (ret < 0)
+                       goto unlock;
+
+               netdev_dbg(ds->ports[port], "802.1Q Mode %s (was %s)\n",
+                          mv88e6xxx_port_8021q_mode_names[new],
+                          mv88e6xxx_port_8021q_mode_names[old]);
+       }
 
-       netdev_dbg(ds->ports[port], "802.1Q Mode: %s (was %s)\n",
-                  mv88e6xxx_port_8021q_mode_names[new],
-                  mv88e6xxx_port_8021q_mode_names[old]);
+       ret = 0;
 unlock:
        mutex_unlock(&ps->smi_mutex);