From: Hangbin Liu <liuhang...@gmail.com> Date: Tue, 20 Aug 2019 10:19:47 +0800
> In commit 93a714d6b53d ("multicast: Extend ip address command to enable > multicast group join/leave on") we added a new flag IFA_F_MCAUTOJOIN > to make user able to add multicast address on ethernet interface. > > This works for IPv4, but not for IPv6. See the inet6_addr_add code. > > static int inet6_addr_add() > { > ... > if (cfg->ifa_flags & IFA_F_MCAUTOJOIN) { > ipv6_mc_config(net->ipv6.mc_autojoin_sk, true...) > } > > ifp = ipv6_add_addr(idev, cfg, true, extack); <- always fail with maddr > if (!IS_ERR(ifp)) { > ... > } else if (cfg->ifa_flags & IFA_F_MCAUTOJOIN) { > ipv6_mc_config(net->ipv6.mc_autojoin_sk, false...) > } > } > > But in ipv6_add_addr() it will check the address type and reject multicast > address directly. So this feature is never worked for IPv6. > > We should not remove the multicast address check totally in ipv6_add_addr(), > but could accept multicast address only when IFA_F_MCAUTOJOIN flag supplied. > > v2: update commit description > > Reported-by: Jianlin Shi <ji...@redhat.com> > Fixes: 93a714d6b53d ("multicast: Extend ip address command to enable > multicast group join/leave on") > Signed-off-by: Hangbin Liu <liuhang...@gmail.com> Applied and queued up for -stable.