On Thu, Sep 11, 2014 at 10:49:33AM +0200, Martin Pieuchot wrote: > --- netinet6/in6.c 26 Aug 2014 21:44:29 -0000 1.140 > +++ netinet6/in6.c 11 Sep 2014 08:45:29 -0000 > @@ -561,8 +560,10 @@ in6_control(struct socket *so, u_long cm > } > > case SIOCDIFADDR_IN6: > + s = splsoftnet(); > in6_purgeaddr(&ia6->ia_ifa); > dohooks(ifp->if_addrhooks, 0); > + splx(s); > break; > > default:
In IPv4 all dohooks(if_addrhooks) are protected by a large splsoftnet(). A few lines above in SIOCAIFADDR_IN6 this is not the case. The hook carp_addr_updated() looks like it would need an splsoftnet() as it is looping over if_addrlist. But this is not part of this diff. OK bluhm@