net: bridge: allow br_fdb_replay to be called for the bridge device
authorVladimir Oltean <vladimir.oltean@nxp.com>
Tue, 29 Jun 2021 14:06:46 +0000 (17:06 +0300)
committerDavid S. Miller <davem@davemloft.net>
Tue, 29 Jun 2021 17:46:23 +0000 (10:46 -0700)
When a port joins a bridge which already has local FDB entries pointing
to the bridge device itself, we would like to offload those, so allow
the "dev" argument to be equal to the bridge too. The code already does
what we need in that case.

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/bridge/br_fdb.c

index bad7e84..2b862cf 100644 (file)
@@ -760,7 +760,10 @@ int br_fdb_replay(const struct net_device *br_dev, const struct net_device *dev,
        unsigned long action;
        int err = 0;
 
-       if (!netif_is_bridge_master(br_dev) || !netif_is_bridge_port(dev))
+       if (!netif_is_bridge_master(br_dev))
+               return -EINVAL;
+
+       if (!netif_is_bridge_port(dev) && !netif_is_bridge_master(dev))
                return -EINVAL;
 
        br = netdev_priv(br_dev);