Currently we only set mc_qrv to sysctl_mld_qrv when interface up. If we change sysctl_mld_qrv after interface up, it will has no effect.
Fix it by assigning latest sysctl_mld_qrv to idev mc_qrv when join new group. Reported-by: Ying Xu <yi...@redhat.com> Signed-off-by: Hangbin Liu <liuhang...@gmail.com> --- net/ipv6/mcast.c | 1 + 1 file changed, 1 insertion(+) diff --git a/net/ipv6/mcast.c b/net/ipv6/mcast.c index dbab62e..bed4890 100644 --- a/net/ipv6/mcast.c +++ b/net/ipv6/mcast.c @@ -680,6 +680,7 @@ static void igmp6_group_added(struct ifmcaddr6 *mc) if (!(dev->flags & IFF_UP) || (mc->mca_flags & MAF_NOREPORT)) return; + mc->idev->mc_qrv = sysctl_mld_qrv; if (mld_in_v1_mode(mc->idev)) { igmp6_join_group(mc); return; -- 2.5.5