diff options
author | Satish Ashok <sashok@cumulusnetworks.com> | 2015-07-09 13:12:45 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-07-11 03:18:00 +0200 |
commit | 51ed7f3e7d33824820837ad784801973f147c51a (patch) | |
tree | 61af19d93fa33f1a86ca86b8c867c47c70ec5d55 /net | |
parent | Merge branch 'netdev_unregister_races' (diff) | |
download | linux-51ed7f3e7d33824820837ad784801973f147c51a.tar.xz linux-51ed7f3e7d33824820837ad784801973f147c51a.zip |
bridge: mdb: allow the user to delete mdb entry if there's a querier
Until now when a querier was present static entries couldn't be deleted.
Fix this and allow the user to manipulate the mdb with or without a
querier.
Signed-off-by: Satish Ashok <sashok@cumulusnetworks.com>
Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/bridge/br_mdb.c | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/net/bridge/br_mdb.c b/net/bridge/br_mdb.c index 60868c212679..c11cf2611db0 100644 --- a/net/bridge/br_mdb.c +++ b/net/bridge/br_mdb.c @@ -423,19 +423,12 @@ static int __br_mdb_del(struct net_bridge *br, struct br_mdb_entry *entry) memset(&ip, 0, sizeof(ip)); ip.proto = entry->addr.proto; - if (ip.proto == htons(ETH_P_IP)) { - if (timer_pending(&br->ip4_other_query.timer)) - return -EBUSY; - + if (ip.proto == htons(ETH_P_IP)) ip.u.ip4 = entry->addr.u.ip4; #if IS_ENABLED(CONFIG_IPV6) - } else { - if (timer_pending(&br->ip6_other_query.timer)) - return -EBUSY; - + else ip.u.ip6 = entry->addr.u.ip6; #endif - } spin_lock_bh(&br->multicast_lock); mdb = mlock_dereference(br->mdb, br); |