net: bridge: fix error in br_multicast_add_port when CONFIG_NET_SWITCHDEV=n
authorVladimir Oltean <vladimir.oltean@nxp.com>
Wed, 21 Apr 2021 18:44:20 +0000 (21:44 +0300)
committerDavid S. Miller <davem@davemloft.net>
Wed, 21 Apr 2021 20:13:33 +0000 (13:13 -0700)
When CONFIG_NET_SWITCHDEV is disabled, the shim for switchdev_port_attr_set
inside br_mc_disabled_update returns -EOPNOTSUPP. This is not caught,
and propagated to the caller of br_multicast_add_port, preventing ports
from joining the bridge.

Reported-by: Christian Borntraeger <borntraeger@de.ibm.com>
Fixes: ae1ea84b33da ("net: bridge: propagate error code and extack from br_mc_disabled_update")
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Tested-by: Christian Borntraeger <borntraeger@de.ibm.com>
Acked-by: Nikolay Aleksandrov <nikolay@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/bridge/br_multicast.c

index 4daa95c..2883601 100644 (file)
@@ -1625,7 +1625,7 @@ int br_multicast_add_port(struct net_bridge_port *port)
                                    br_opt_get(port->br,
                                               BROPT_MULTICAST_ENABLED),
                                    NULL);
-       if (err)
+       if (err && err != -EOPNOTSUPP)
                return err;
 
        port->mcast_stats = netdev_alloc_pcpu_stats(struct bridge_mcast_stats);