OSDN Git Service

net: dsa: print more information when a cross-chip notifier fails
authorVladimir Oltean <vladimir.oltean@nxp.com>
Wed, 11 Aug 2021 13:46:05 +0000 (16:46 +0300)
committerDavid S. Miller <davem@davemloft.net>
Thu, 12 Aug 2021 10:46:21 +0000 (11:46 +0100)
Currently this error message does not say a lot:

[   32.693498] DSA: failed to notify tag_8021q VLAN deletion: -ENOENT
[   32.699725] DSA: failed to notify tag_8021q VLAN deletion: -ENOENT
[   32.705931] DSA: failed to notify tag_8021q VLAN deletion: -ENOENT
[   32.712139] DSA: failed to notify tag_8021q VLAN deletion: -ENOENT
[   32.718347] DSA: failed to notify tag_8021q VLAN deletion: -ENOENT
[   32.724554] DSA: failed to notify tag_8021q VLAN deletion: -ENOENT

but in this form, it is immediately obvious (at least to me) what the
problem is, even without further looking at the code:

[   12.345566] sja1105 spi2.0: port 0 failed to notify tag_8021q VLAN 1088 deletion: -ENOENT
[   12.353804] sja1105 spi2.0: port 0 failed to notify tag_8021q VLAN 2112 deletion: -ENOENT
[   12.362019] sja1105 spi2.0: port 1 failed to notify tag_8021q VLAN 1089 deletion: -ENOENT
[   12.370246] sja1105 spi2.0: port 1 failed to notify tag_8021q VLAN 2113 deletion: -ENOENT
[   12.378466] sja1105 spi2.0: port 2 failed to notify tag_8021q VLAN 1090 deletion: -ENOENT
[   12.386683] sja1105 spi2.0: port 2 failed to notify tag_8021q VLAN 2114 deletion: -ENOENT

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/dsa/port.c

index 831d50d..ee1c6bf 100644 (file)
@@ -426,7 +426,9 @@ void dsa_port_bridge_leave(struct dsa_port *dp, struct net_device *br)
 
        err = dsa_broadcast(DSA_NOTIFIER_BRIDGE_LEAVE, &info);
        if (err)
-               pr_err("DSA: failed to notify DSA_NOTIFIER_BRIDGE_LEAVE\n");
+               dev_err(dp->ds->dev,
+                       "port %d failed to notify DSA_NOTIFIER_BRIDGE_LEAVE: %pe\n",
+                       dp->index, ERR_PTR(err));
 
        dsa_port_switchdev_unsync_attrs(dp);
 }
@@ -525,8 +527,9 @@ void dsa_port_lag_leave(struct dsa_port *dp, struct net_device *lag)
 
        err = dsa_port_notify(dp, DSA_NOTIFIER_LAG_LEAVE, &info);
        if (err)
-               pr_err("DSA: failed to notify DSA_NOTIFIER_LAG_LEAVE: %d\n",
-                      err);
+               dev_err(dp->ds->dev,
+                       "port %d failed to notify DSA_NOTIFIER_LAG_LEAVE: %pe\n",
+                       dp->index, ERR_PTR(err));
 
        dsa_lag_unmap(dp->ds->dst, lag);
 }
@@ -1306,7 +1309,9 @@ void dsa_port_hsr_leave(struct dsa_port *dp, struct net_device *hsr)
 
        err = dsa_port_notify(dp, DSA_NOTIFIER_HSR_LEAVE, &info);
        if (err)
-               pr_err("DSA: failed to notify DSA_NOTIFIER_HSR_LEAVE\n");
+               dev_err(dp->ds->dev,
+                       "port %d failed to notify DSA_NOTIFIER_HSR_LEAVE: %pe\n",
+                       dp->index, ERR_PTR(err));
 }
 
 int dsa_port_tag_8021q_vlan_add(struct dsa_port *dp, u16 vid)
@@ -1333,6 +1338,7 @@ void dsa_port_tag_8021q_vlan_del(struct dsa_port *dp, u16 vid)
 
        err = dsa_broadcast(DSA_NOTIFIER_TAG_8021Q_VLAN_DEL, &info);
        if (err)
-               pr_err("DSA: failed to notify tag_8021q VLAN deletion: %pe\n",
-                      ERR_PTR(err));
+               dev_err(dp->ds->dev,
+                       "port %d failed to notify tag_8021q VLAN %d deletion: %pe\n",
+                       dp->index, vid, ERR_PTR(err));
 }