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.dide...@savoirfairelinux.com>
---
 drivers/net/dsa/mv88e6xxx.c | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

diff --git a/drivers/net/dsa/mv88e6xxx.c b/drivers/net/dsa/mv88e6xxx.c
index 1aee42d..5f07524 100644
--- a/drivers/net/dsa/mv88e6xxx.c
+++ b/drivers/net/dsa/mv88e6xxx.c
@@ -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);
 
-- 
2.7.2

Reply via email to