Re: [PATCH net v3 3/5] ipv6: restrict mld_qrv to 255
From: Kuniyuki Iwashima
Date: Tue Nov 03 2026 - 00:29:58 EST
On Sun, 01 Nov 2026 14:12:01 +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, so 256 wraps to 0 and the first MLDv2
> Query received on the interface trips the WARN_ON() in mld_update_qrv():
>
> WARN_ON(idev->mc_qrv == 0);
>
> 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>
>
> Make the sysctl a u8 like mc_qrv and switch to proc_dou8vec_minmax(),
> which rejects anything above 255, and document it.
>
> Fixes: 2f711939d2ea ("ipv6: add sysctl_mld_qrv to configure query robustness variable")
> Cc: stable@xxxxxxxxxxxxxxx
> Reviewed-by: Fernando Fernandez Mancera <fmancera@xxxxxxx>
> Signed-off-by: Jiayuan Chen <jiayuan.chen@xxxxxxxxx>
Reviewed-by: Kuniyuki Iwashima <kuniyu@xxxxxxxxxx>