This change ensures that the new multicast active state variable is unset again after a foreign IGMP/MLD querier has disappeared (default: 255 seconds). If no new, other IGMP/MLD querier took over then we can't reliably receive IGMP/MLD reports anymore and in turn can't ensure the completeness of our MDB anymore either.
No functional change for the fast/data path yet. Signed-off-by: Linus Lüssing <linus.luess...@c0d3.blue> --- net/bridge/br_multicast.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c index 5cc713adcf9b..2e5b5281e484 100644 --- a/net/bridge/br_multicast.c +++ b/net/bridge/br_multicast.c @@ -1800,6 +1800,10 @@ static void br_multicast_querier_expired(struct net_bridge_mcast *brmctx, br_multicast_start_querier(brmctx, query); out: + /* another IGMP/MLD querier disappeared, set multicast state to inactive + * if our own querier is disabled, too + */ + br_multicast_update_active(brmctx); spin_unlock(&brmctx->br->multicast_lock); } -- 2.50.1