Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 51ed7f3e authored by Satish Ashok's avatar Satish Ashok Committed by David S. Miller
Browse files

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: default avatarSatish Ashok <sashok@cumulusnetworks.com>
Signed-off-by: default avatarNikolay Aleksandrov <nikolay@cumulusnetworks.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 7234e030
Loading
Loading
Loading
Loading
+2 −9
Original line number Diff line number Diff line
@@ -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);