Re: [PATCH net v2] ipv6: fix rtnl locking in setsockopt for anycast and multicast
From: Hannes Frederic Sowa <hidden>
Date: 2014-09-05 19:13:03
Also in:
lkml
On Fr, 2014-09-05 at 11:58 -0700, Cong Wang wrote:
On Fri, Sep 5, 2014 at 11:53 AM, David Miller [off-list ref] wrote:quoted
From: Sabrina Dubroca <sd@queasysnail.net> Date: Tue, 2 Sep 2014 10:29:29 +0200quoted
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 <redacted> Signed-off-by: Sabrina Dubroca <sd@queasysnail.net> Reported-by: Tommi Rantala <redacted>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.)
What games are you playing? You know how patches are processed by David and I even let him the choice by pointing out a problem in your patch so that you could an update and send v2. I really feel miffed about your behavior! Anyway, I saw the hunk adding the return -ENODEV and didn't see any problems with it. Sure it might be better if it would gone into a separate patch. Can you elaborate what problems you see? Thanks, Hannes