Re: [PATCH net v2] ipv6: fix rtnl locking in setsockopt for anycast and multicast
Cong Wang <[email protected]> Fri, 5 Sep 2014 11:58:31 -0700
| Newsgroups | org.kernel.vger.trinity,org.kernel.vger.linux-kernel,org.kernel.vger.netdev |
|---|---|
| Message-ID | <CAHA+R7M1qd5g1ta=YFqefgXDf1EfF2_VsJGUvH6Dd+ttnHc_VQ@mail.gmail.com> |
On Fri, Sep 5, 2014 at 11:53 AM, David Miller <[email protected]> wrote: > From: Sabrina Dubroca <[email protected]> > Date: Tue, 2 Sep 2014 10:29:29 +0200 > >> Calling setsockopt with IPV6_JOIN_ANYCAST or IPV6_LEAVE_ANYCAST >> triggers the assertion in addrconf_join_solict()/addrconf_leave_solict() >> >> ipv6_sock_ac_join(), ipv6_sock_ac_drop(), ipv6_sock_ac_close() need to >> take RTNL before calling ipv6_dev_ac_inc/dec. Same thing with >> ipv6_sock_mc_join(), ipv6_sock_mc_drop(), ipv6_sock_mc_close() before >> calling ipv6_dev_mc_inc/dec. >> >> This patch moves ASSERT_RTNL() up a level in the call stack. >> >> Signed-off-by: Cong Wang <[email protected]> >> Signed-off-by: Sabrina Dubroca <[email protected]> >> Reported-by: Tommi Rantala <[email protected]> > > Applied and queued up for -stable, thanks. I believe you applied a wrong version, at least the following is not correct: + if (!dev) + return -ENODEV; Sabrina took that from my draft patch, but they all don't realize this is wrong. (I did provide a correct version which is just ignored by you.)