net: dsa: be louder when a non-legacy FDB operation fails
authorVladimir Oltean <vladimir.oltean@nxp.com>
Wed, 6 Jan 2021 09:51:31 +0000 (11:51 +0200)
committerJakub Kicinski <kuba@kernel.org>
Thu, 7 Jan 2021 23:34:45 +0000 (15:34 -0800)
The dev_close() call was added in commit c9eb3e0f8701 ("net: dsa: Add
support for learning FDB through notification") "to indicate inconsistent
situation" when we could not delete an FDB entry from the port.

bridge fdb del d8:58:d7:00:ca:6d dev swp0 self master

It is a bit drastic and at the same time not helpful if the above fails
to only print with netdev_dbg log level, but on the other hand to bring
the interface down.

So increase the verbosity of the error message, and drop dev_close().

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/dsa/slave.c

index 4a0498bf6c65e8eb521bdf40ac4357b683ab46e4..d5d389300124e2ac3e0542f6f84989a5a141ccb8 100644 (file)
@@ -2072,7 +2072,9 @@ static void dsa_slave_switchdev_event_work(struct work_struct *work)
 
                err = dsa_port_fdb_add(dp, fdb_info->addr, fdb_info->vid);
                if (err) {
-                       netdev_dbg(dev, "fdb add failed err=%d\n", err);
+                       netdev_err(dev,
+                                  "failed to add %pM vid %d to fdb: %d\n",
+                                  fdb_info->addr, fdb_info->vid, err);
                        break;
                }
                fdb_info->offloaded = true;
@@ -2087,9 +2089,11 @@ static void dsa_slave_switchdev_event_work(struct work_struct *work)
 
                err = dsa_port_fdb_del(dp, fdb_info->addr, fdb_info->vid);
                if (err) {
-                       netdev_dbg(dev, "fdb del failed err=%d\n", err);
-                       dev_close(dev);
+                       netdev_err(dev,
+                                  "failed to delete %pM vid %d from fdb: %d\n",
+                                  fdb_info->addr, fdb_info->vid, err);
                }
+
                break;
        }
        rtnl_unlock();