summaryrefslogtreecommitdiffstats
path: root/freebsd/sys/netinet/sctp_bsd_addr.c
diff options
context:
space:
mode:
Diffstat (limited to 'freebsd/sys/netinet/sctp_bsd_addr.c')
-rw-r--r--freebsd/sys/netinet/sctp_bsd_addr.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/freebsd/sys/netinet/sctp_bsd_addr.c b/freebsd/sys/netinet/sctp_bsd_addr.c
index 0f0ddd89..962fae37 100644
--- a/freebsd/sys/netinet/sctp_bsd_addr.c
+++ b/freebsd/sys/netinet/sctp_bsd_addr.c
@@ -210,11 +210,13 @@ sctp_init_ifns_for_vrf(int vrfid)
IFNET_RLOCK();
CK_STAILQ_FOREACH(ifn, &MODULE_GLOBAL(ifnet), if_link) {
+ struct epoch_tracker et;
+
if (sctp_is_desired_interface_type(ifn) == 0) {
/* non desired type */
continue;
}
- IF_ADDR_RLOCK(ifn);
+ NET_EPOCH_ENTER(et);
CK_STAILQ_FOREACH(ifa, &ifn->if_addrhead, ifa_link) {
if (ifa->ifa_addr == NULL) {
continue;
@@ -267,7 +269,7 @@ sctp_init_ifns_for_vrf(int vrfid)
sctp_ifa->localifa_flags &= ~SCTP_ADDR_DEFER_USE;
}
}
- IF_ADDR_RUNLOCK(ifn);
+ NET_EPOCH_EXIT(et);
}
IFNET_RUNLOCK();
}