]> git.baikalelectronics.ru Git - kernel.git/commitdiff
net: dsa: allow port_bridge_join() to override extack message
authorClément Léger <clement.leger@bootlin.com>
Fri, 24 Jun 2022 14:39:46 +0000 (16:39 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 27 Jun 2022 10:37:54 +0000 (11:37 +0100)
Some drivers might report that they are unable to bridge ports by
returning -EOPNOTSUPP, but still wants to override extack message.
In order to do so, in dsa_slave_changeupper(), if port_bridge_join()
returns -EOPNOTSUPP, check if extack message is set and if so, do not
override it.

Signed-off-by: Clément Léger <clement.leger@bootlin.com>
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/dsa/slave.c

index 2e1ac638d135e8b83cd80f83a67736e31f387afa..509b98dd9954bf7610603d45d08e2208a078203d 100644 (file)
@@ -2460,8 +2460,9 @@ static int dsa_slave_changeupper(struct net_device *dev,
                        if (!err)
                                dsa_bridge_mtu_normalization(dp);
                        if (err == -EOPNOTSUPP) {
-                               NL_SET_ERR_MSG_MOD(extack,
-                                                  "Offloading not supported");
+                               if (!extack->_msg)
+                                       NL_SET_ERR_MSG_MOD(extack,
+                                                          "Offloading not supported");
                                err = 0;
                        }
                        err = notifier_from_errno(err);