summaryrefslogtreecommitdiffstats
path: root/net/bridge
diff options
context:
space:
mode:
authorSatish Ashok <sashok@cumulusnetworks.com>2015-07-09 04:12:45 -0700
committerDavid S. Miller <davem@davemloft.net>2015-07-10 18:18:00 -0700
commit51ed7f3e7d33824820837ad784801973f147c51a (patch)
tree61af19d93fa33f1a86ca86b8c867c47c70ec5d55 /net/bridge
parent7234e030194ccc27c48d3bde1ad66e1729c55a7d (diff)
downloadlinux-51ed7f3e7d33824820837ad784801973f147c51a.tar.gz
linux-51ed7f3e7d33824820837ad784801973f147c51a.tar.bz2
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/bridge')
-rw-r--r--net/bridge/br_mdb.c11
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);