From: Kuniyuki Iwashima <kuniyu@google.com>
To: Jiayuan Chen <jiayuan.chen@linux.dev>
Cc: netdev@vger.kernel.org, stable@vger.kernel.org,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@kernel.org>,
Jakub Kicinski <kuba@kernel.org>,
Paolo Abeni <pabeni@redhat.com>, Simon Horman <horms@kernel.org>,
David Ahern <dsahern@kernel.org>,
Ido Schimmel <idosch@nvidia.com>,
Neal Cardwell <ncardwell@google.com>,
Joel Granados <joel.granados@kernel.org>,
Chia-Yu Chang <chia-yu.chang@nokia-bell-labs.com>,
Fernando Fernandez Mancera <fmancera@suse.de>,
Wyatt Feng <bronzed_45_vested@icloud.com>,
Yung Chih Su <yuuchihsu@gmail.com>,
Flavio Leitner <fbl@redhat.com>,
Hannes Frederic Sowa <hannes@stressinduktion.org>,
"Paul E. McKenney" <paulmck@kernel.org>,
Petr Mladek <pmladek@suse.com>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH net 3/5] ipv6: restrict mld_qrv to 255
Date: Tue, 27 Oct 2026 05:24:07 +0000 [thread overview]
Message-ID: <auA1EdaydKK-XgfC@google.com> (raw)
In-Reply-To: <20261023091419.167088-4-jiayuan.chen@linux.dev>
On Fri, 23 Oct 2026 17:13:29 +0800, Jiayuan Chen wrote:
> net.ipv6.mld_qrv only has a lower bound, but ipv6_mc_reset() stores it
> into the u8 inet6_dev::mc_qrv, and every MLD retransmit counter derived
> from it (mca_crcount, sf_crcount, mc_ifc_count, mc_dad_count) is u8 as
> well. Anything above 255 silently wraps: 256 becomes 0, so no state
> change report is ever retransmitted, and the first MLDv2 Query received
> on the interface then trips the WARN_ON() in mld_update_qrv():
>
> WARN_ON(idev->mc_qrv == 0);
>
> A plain bridge with mcast_querier enabled on the link is enough:
>
> WARNING: net/ipv6/mcast.c:1327 at mld_query_work+0x1fd2/0x2cb0, CPU#3: kworker/3:1/2688
> Workqueue: mld mld_query_work
> RIP: 0010:mld_query_work+0x1fd2/0x2cb0
> Call Trace:
> <TASK>
> process_one_work+0x93a/0x1b20
> worker_thread+0x6d0/0x11d0
> kthread+0x358/0x470
> ret_from_fork+0x5b3/0x820
> ret_from_fork_asm+0x1a/0x30
> </TASK>
>
> Cap the sysctl at U8_MAX, the largest value mc_qrv can actually hold.
>
> Fixes: 2f711939d2ea ("ipv6: add sysctl_mld_qrv to configure query robustness variable")
> Cc: stable@vger.kernel.org
> Signed-off-by: Jiayuan Chen <jiayuan.chen@linux.dev>
> ---
> net/ipv6/sysctl_net_ipv6.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/net/ipv6/sysctl_net_ipv6.c b/net/ipv6/sysctl_net_ipv6.c
> index 1a0a36dcdabc..05a384680332 100644
> --- a/net/ipv6/sysctl_net_ipv6.c
> +++ b/net/ipv6/sysctl_net_ipv6.c
> @@ -29,6 +29,7 @@ static u32 rt6_multipath_hash_fields_all_mask =
> FIB_MULTIPATH_HASH_FIELD_ALL_MASK;
> static u32 ioam6_id_max = IOAM6_DEFAULT_ID;
> static u64 ioam6_id_wide_max = IOAM6_DEFAULT_ID_WIDE;
> +static int mld_qrv_max = U8_MAX;
>
> static int proc_rt6_multipath_hash_policy(const struct ctl_table *table, int write,
> void *buffer, size_t *lenp, loff_t *ppos)
> @@ -229,7 +230,8 @@ static struct ctl_table ipv6_rotable[] = {
> .maxlen = sizeof(int),
> .mode = 0644,
> .proc_handler = proc_dointvec_minmax,
inet6_dev.mc_qrv is u8, you can simply use proc_dou8vec_minmax()
instead of adding extra2.
> - .extra1 = SYSCTL_ONE
> + .extra1 = SYSCTL_ONE,
> + .extra2 = &mld_qrv_max,
> },
> #ifdef CONFIG_NETLABEL
> {
> --
> 2.43.0
>
next prev parent reply other threads:[~2026-10-27 5:24 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-23 9:13 [PATCH net 0/5] net: fix misc signed overflows caused by bad sysctl values Jiayuan Chen
2026-10-23 9:13 ` [PATCH net 1/5] ipv6: restrict gc_elasticity to 31 Jiayuan Chen
2026-10-23 13:31 ` Fernando Fernandez Mancera
2026-10-26 12:15 ` netdev-bot+sashiko
2026-10-27 5:18 ` Kuniyuki Iwashima
2026-10-23 9:13 ` [PATCH net 2/5] ipv4: fix shift-out-of-bounds in ip_rt_send_redirect() Jiayuan Chen
2026-10-23 14:11 ` Fernando Fernandez Mancera
2026-10-23 14:38 ` Jiayuan Chen
2026-10-26 12:15 ` netdev-bot+sashiko
2026-10-23 9:13 ` [PATCH net 3/5] ipv6: restrict mld_qrv to 255 Jiayuan Chen
2026-10-23 14:13 ` Fernando Fernandez Mancera
2026-10-26 12:15 ` netdev-bot+sashiko
2026-10-27 5:24 ` Kuniyuki Iwashima [this message]
2026-10-23 9:13 ` [PATCH net 4/5] ipv4: restrict igmp_qrv " Jiayuan Chen
2026-10-23 14:14 ` Fernando Fernandez Mancera
2026-10-26 12:15 ` netdev-bot+sashiko
2026-10-27 5:25 ` Kuniyuki Iwashima
2026-10-23 9:13 ` [PATCH net 5/5] net: restrict message_cost and message_burst to non-negative values Jiayuan Chen
2026-10-23 12:19 ` Joel Granados
2026-10-23 12:55 ` Fernando Fernandez Mancera
2026-10-23 14:30 ` Jiayuan Chen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=auA1EdaydKK-XgfC@google.com \
--to=kuniyu@google.com \
--cc=bronzed_45_vested@icloud.com \
--cc=chia-yu.chang@nokia-bell-labs.com \
--cc=davem@davemloft.net \
--cc=dsahern@kernel.org \
--cc=edumazet@kernel.org \
--cc=fbl@redhat.com \
--cc=fmancera@suse.de \
--cc=hannes@stressinduktion.org \
--cc=horms@kernel.org \
--cc=idosch@nvidia.com \
--cc=jiayuan.chen@linux.dev \
--cc=joel.granados@kernel.org \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=ncardwell@google.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=paulmck@kernel.org \
--cc=pmladek@suse.com \
--cc=stable@vger.kernel.org \
--cc=yuuchihsu@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.