lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <1454355982.7627.185.camel@edumazet-glaptop2.roam.corp.google.com> Date: Mon, 01 Feb 2016 11:46:22 -0800 From: Eric Dumazet <eric.dumazet@...il.com> To: subashab@...eaurora.org Cc: Erik Kline <ek@...gle.com>, Netdev <netdev@...r.kernel.org>, Hannes Frederic Sowa <hannes@...essinduktion.org> Subject: Re: [PATCH net] ipv6: addrconf: Fix recursive spin lock call On Mon, 2016-02-01 at 11:37 -0800, Eric Dumazet wrote: > I would rather try : > > diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c > index 38eeddedfc21..d6b7ab07f914 100644 > --- a/net/ipv6/addrconf.c > +++ b/net/ipv6/addrconf.c > @@ -3538,6 +3538,7 @@ static void addrconf_dad_begin(struct inet6_ifaddr *ifp) > { > struct inet6_dev *idev = ifp->idev; > struct net_device *dev = idev->dev; > + bool notify = false; > > addrconf_join_solict(dev, &ifp->addr); > > @@ -3583,7 +3584,8 @@ static void addrconf_dad_begin(struct inet6_ifaddr *ifp) > /* Because optimistic nodes can use this address, > * notify listeners. If DAD fails, RTM_DELADDR is sent. > */ > - ipv6_ifa_notify(RTM_NEWADDR, ifp); > + notify = true; > + in6_ifa_hold(ifp); Actually the in6_ifa_hold() is not needed. > } > } > > @@ -3591,6 +3593,10 @@ static void addrconf_dad_begin(struct inet6_ifaddr *ifp) > out: > spin_unlock(&ifp->lock); > read_unlock_bh(&idev->lock); > + if (notify) { > + ipv6_ifa_notify(RTM_NEWADDR, ifp); > + in6_ifa_put(ifp); And in6_ifa_put() not needed once in6_ifa_hold() is removed. > + } > } > > static void addrconf_dad_start(struct inet6_ifaddr *ifp) > > >
Powered by blists - more mailing lists