diff options
author | tuexen <tuexen@FreeBSD.org> | 2009-09-19 14:02:16 +0000 |
---|---|---|
committer | tuexen <tuexen@FreeBSD.org> | 2009-09-19 14:02:16 +0000 |
commit | de3c71bd61d49aee290e55fe5415716bde0ec4f5 (patch) | |
tree | 7f9566e6fb4d8936c10c66c1a1768017e22def37 /sys/netinet/sctp_bsd_addr.c | |
parent | b5cc6d26583c826010729266142444af8b80a58f (diff) | |
download | FreeBSD-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.c | 16 |
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 * |