On Thu, 25 Mar 2010, Rui Paulo wrote:


On 25 Mar 2010, at 10:29, Bjoern A. Zeeb wrote:

Author: bz
Date: Thu Mar 25 10:29:00 2010
New Revision: 205637
URL: http://svn.freebsd.org/changeset/base/205637

Log:
 We are holding a write lock here so avoid aquiring it twice calling
 the "locked" version rather than the wrapper function.

 MFC after:     6 days

Modified:
 head/sys/netinet6/nd6.c

Modified: head/sys/netinet6/nd6.c
==============================================================================
--- head/sys/netinet6/nd6.c     Thu Mar 25 10:13:21 2010        (r205636)
+++ head/sys/netinet6/nd6.c     Thu Mar 25 10:29:00 2010        (r205637)
@@ -1168,7 +1168,7 @@ nd6_nud_hint(struct rtentry *rt, struct


This code is probably missing a:
               LLE_WLOCK_ASSERT(lle);
at the beginning.

No, the lock is acquired in
        ln = nd6_lookup(dst6, ND6_EXCLUSIVE, NULL);
        calling into lla_lookup().. ending in in6_lltable_lookup()
and hold if the ln is not NULL.



        ln->ln_state = ND6_LLINFO_REACHABLE;
        if (!ND6_LLINFO_PERMANENT(ln)) {
-               nd6_llinfo_settimer(ln,
+               nd6_llinfo_settimer_locked(ln,
                    (long)ND_IFINFO(rt->rt_ifp)->reachable * hz);
        }
done:

--
Rui Paulo


--
Bjoern A. Zeeb         It will not break if you know what you are doing.
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to