[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20260207045605.4164706-1-kuba@kernel.org>
Date: Fri, 6 Feb 2026 20:56:05 -0800
From: Jakub Kicinski <kuba@...nel.org>
To: linus.luessing@...3.blue
Cc: Jakub Kicinski <kuba@...nel.org>,
razor@...ckwall.org,
kuniyu@...gle.com,
davem@...emloft.net,
edumazet@...gle.com,
idosch@...dia.com,
sdf@...ichev.me,
shaw.leon@...il.com,
netdev@...r.kernel.org,
bridge@...ts.linux.dev,
horms@...nel.org,
pabeni@...hat.com,
andrew+netdev@...n.ch,
linux-kernel@...r.kernel.org
Subject: Re: [net-next,v2,05/14] net: bridge: mcast: track active state, foreign IGMP/MLD querier disappearance
This is an AI-generated review of your patch. The human sending this
email has considered the AI review valid, or at least plausible.
For local reproduction steps see https://netdev-ai.bots.linux.dev/ai-local.html
---
net: bridge: mcast: track active state, foreign IGMP/MLD querier disappearance
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.
> diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c
> index d5c623dce7eb..0fc29875db9c 100644
> --- a/net/bridge/br_multicast.c
> +++ b/net/bridge/br_multicast.c
> @@ -1826,6 +1826,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);
> }
This isn't a bug, but I noticed a couple of unaddressed review comments
from Ido Schimmel's feedback on v1 back in May 2025 that don't appear to
have been incorporated into this v2 series.
In __br_multicast_querier_exists() in net/bridge/br_private.h around line
1164, the 'is_ipv6' bool parameter is marked const. Since this is a
pass-by-value parameter, the const qualifier doesn't provide any benefit.
Should it be removed?
Reference: https://lore.kernel.org/all/aDNPxdmDPYwasUEM@shredder/
Also in br_multicast_querier_exists() in net/bridge/br_private.h around
line 1182, the function takes a struct ethhdr *eth parameter but only uses
eth->h_proto. Would it make more sense to either make the 'eth' parameter
const, or just pass the EtherType (__be16) directly instead of the entire
struct pointer?
Reference: https://lore.kernel.org/all/aDNPxdmDPYwasUEM@shredder/
Powered by blists - more mailing lists