summaryrefslogtreecommitdiffstats
path: root/sys/netinet/sctp_bsd_addr.c
diff options
context:
space:
mode:
authortuexen <tuexen@FreeBSD.org>2009-09-19 14:02:16 +0000
committertuexen <tuexen@FreeBSD.org>2009-09-19 14:02:16 +0000
commitde3c71bd61d49aee290e55fe5415716bde0ec4f5 (patch)
tree7f9566e6fb4d8936c10c66c1a1768017e22def37 /sys/netinet/sctp_bsd_addr.c
parentb5cc6d26583c826010729266142444af8b80a58f (diff)
downloadFreeBSD-src-de3c71bd61d49aee290e55fe5415716bde0ec4f5.zip
FreeBSD-src-de3c71bd61d49aee290e55fe5415716bde0ec4f5.tar.gz
Get SCTP working in combination with VIMAGE.
Contains code from bz. Approved by: rrs (mentor) MFC after: 1 month.
Diffstat (limited to 'sys/netinet/sctp_bsd_addr.c')
-rw-r--r--sys/netinet/sctp_bsd_addr.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/sys/netinet/sctp_bsd_addr.c b/sys/netinet/sctp_bsd_addr.c
index c5d1a8f..353e5e6 100644
--- a/sys/netinet/sctp_bsd_addr.c
+++ b/sys/netinet/sctp_bsd_addr.c
@@ -89,6 +89,7 @@ sctp_wakeup_iterator(void)
static void
sctp_iterator_thread(void *v)
{
+ CURVNET_SET((struct vnet *)v);
SCTP_IPI_ITERATOR_WQ_LOCK();
SCTP_BASE_INFO(iterator_running) = 0;
while (1) {
@@ -100,6 +101,7 @@ sctp_iterator_thread(void *v)
}
sctp_iterator_worker();
}
+ CURVNET_RESTORE();
}
void
@@ -108,7 +110,7 @@ sctp_startup_iterator(void)
int ret;
ret = kproc_create(sctp_iterator_thread,
- (void *)NULL,
+ (void *)curvnet,
&SCTP_BASE_INFO(thread_proc),
RFPROC,
SCTP_KTHREAD_PAGES,
@@ -206,6 +208,9 @@ sctp_init_ifns_for_vrf(int vrfid)
struct sctp_ifa *sctp_ifa;
uint32_t ifa_flags;
+#if 0
+ IFNET_RLOCK();
+#endif
TAILQ_FOREACH(ifn, &MODULE_GLOBAL(ifnet), if_list) {
IF_ADDR_LOCK(ifn);
TAILQ_FOREACH(ifa, &ifn->if_addrlist, ifa_list) {
@@ -251,6 +256,9 @@ sctp_init_ifns_for_vrf(int vrfid)
}
IF_ADDR_UNLOCK(ifn);
}
+#if 0
+ IFNET_RUNLOCK();
+#endif
}
void
@@ -336,6 +344,9 @@ void
struct ifnet *ifn;
struct ifaddr *ifa;
+#if 0
+ IFNET_RLOCK();
+#endif
TAILQ_FOREACH(ifn, &MODULE_GLOBAL(ifnet), if_list) {
if (!(*pred) (ifn)) {
continue;
@@ -344,6 +355,9 @@ void
sctp_addr_change(ifa, add ? RTM_ADD : RTM_DELETE);
}
}
+#if 0
+ IFNET_RUNLOCK();
+#endif
}
struct mbuf *
OpenPOWER on IntegriCloud