bridge: mcast: do nothing if port's multicast_router is set to the same val
authorNikolay Aleksandrov <nikolay@cumulusnetworks.com>
Fri, 26 Feb 2016 20:20:02 +0000 (21:20 +0100)
committerDavid S. Miller <davem@davemloft.net>
Tue, 1 Mar 2016 21:55:07 +0000 (16:55 -0500)
This is needed for the upcoming temporary port router. There's no point
to go through the logic if the value is the same.

Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/bridge/br_multicast.c

index 71c109b0943fc8ee8876c93ce41eddfef5c64d30..f1140cf5168daf1f8141d57bb72d1b4186570aa5 100644 (file)
@@ -1853,7 +1853,10 @@ int br_multicast_set_port_router(struct net_bridge_port *p, unsigned long val)
        int err = -EINVAL;
 
        spin_lock(&br->multicast_lock);
-
+       if (p->multicast_router == val) {
+               err = 0;
+               goto unlock;
+       }
        switch (val) {
        case MDB_RTR_TYPE_DISABLED:
                p->multicast_router = MDB_RTR_TYPE_DISABLED;