Page MenuHomeFreeBSD

D6639.id17091.diff
No OneTemporary

D6639.id17091.diff

Index: sys/netinet6/nd6_nbr.c
===================================================================
--- sys/netinet6/nd6_nbr.c
+++ sys/netinet6/nd6_nbr.c
@@ -1216,7 +1216,6 @@
struct in6_ifaddr *ia = (struct in6_ifaddr *)ifa;
struct dadq *dp;
char ip6buf[INET6_ADDRSTRLEN];
- int send_ns;
/*
* If we don't need DAD, don't do it.
@@ -1290,12 +1289,7 @@
dp->dad_ns_lcount = dp->dad_loopbackprobe = 0;
refcount_init(&dp->dad_refcnt, 1);
nd6_dad_add(dp);
- send_ns = 0;
- if (delay == 0) {
- send_ns = 1;
- delay = (long)ND_IFINFO(ifa->ifa_ifp)->retrans * hz / 1000;
- }
- nd6_dad_starttimer(dp, delay, send_ns);
+ nd6_dad_starttimer(dp, delay, 0);
}
/*
Index: sys/netinet6/nd6_rtr.c
===================================================================
--- sys/netinet6/nd6_rtr.c
+++ sys/netinet6/nd6_rtr.c
@@ -46,6 +46,7 @@
#include <sys/kernel.h>
#include <sys/lock.h>
#include <sys/errno.h>
+#include <sys/rmlock.h>
#include <sys/rwlock.h>
#include <sys/syslog.h>
#include <sys/queue.h>
@@ -1443,6 +1444,7 @@
struct in6_ifaddr *ifa;
struct nd_defrouter *dr;
struct nd_pfxrouter *pfxrtr = NULL;
+ struct rm_priotracker in6_ifa_tracker;
/*
* Check if there is a prefix that has a reachable advertising
@@ -1573,9 +1575,8 @@
* detached. Note, however, that a manually configured address should
* always be attached.
* The precise detection logic is same as the one for prefixes.
- *
- * XXXRW: in6_ifaddrhead locking.
*/
+ IN6_IFADDR_RLOCK(&in6_ifa_tracker);
TAILQ_FOREACH(ifa, &V_in6_ifaddrhead, ia_link) {
if (!(ifa->ia6_flags & IN6_IFF_AUTOCONF))
continue;
@@ -1610,8 +1611,7 @@
ifa->ia6_flags |= IN6_IFF_DETACHED;
}
}
- }
- else {
+ } else {
TAILQ_FOREACH(ifa, &V_in6_ifaddrhead, ia_link) {
if ((ifa->ia6_flags & IN6_IFF_AUTOCONF) == 0)
continue;
@@ -1624,6 +1624,7 @@
}
}
}
+ IN6_IFADDR_RUNLOCK(&in6_ifa_tracker);
}
static int

File Metadata

Mime Type
text/plain
Expires
Fri, Aug 28, 9:46 PM (30 m, 28 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
37469516
Default Alt Text
D6639.id17091.diff (1 KB)

Event Timeline