svn commit: r258765 - head/sys/netinet
Michael Tuexen
tuexen at FreeBSD.org
Sat Nov 30 12:55:34 UTC 2013
Author: tuexen
Date: Sat Nov 30 12:51:19 2013
New Revision: 258765
URL: http://svnweb.freebsd.org/changeset/base/258765
Log:
In
http://svnweb.freebsd.org/changeset/base/258221
I introduced a bug which initialized global locks
whenever the SCTP stack initialized. This was fixed in
http://svnweb.freebsd.org/changeset/base/258574
by rodrigc at . He just initialized the locks for
the default vnet. This fix reverts to the old
behaviour before r258221, which explicitly makes
sure it is only called once, because this works also on
other platforms.
MFC after: 3 days
X-MFC with: r258574.
Modified:
head/sys/netinet/sctp_bsd_addr.c
head/sys/netinet/sctp_pcb.c
Modified: head/sys/netinet/sctp_bsd_addr.c
==============================================================================
--- head/sys/netinet/sctp_bsd_addr.c Sat Nov 30 08:49:52 2013 (r258764)
+++ head/sys/netinet/sctp_bsd_addr.c Sat Nov 30 12:51:19 2013 (r258765)
@@ -100,6 +100,9 @@ sctp_startup_iterator(void)
/* You only get one */
return;
}
+ /* Initialize global locks here, thus only once. */
+ SCTP_ITERATOR_LOCK_INIT();
+ SCTP_IPI_ITERATOR_WQ_INIT();
TAILQ_INIT(&sctp_it_ctl.iteratorhead);
kproc_create(sctp_iterator_thread,
(void *)NULL,
Modified: head/sys/netinet/sctp_pcb.c
==============================================================================
--- head/sys/netinet/sctp_pcb.c Sat Nov 30 08:49:52 2013 (r258764)
+++ head/sys/netinet/sctp_pcb.c Sat Nov 30 12:51:19 2013 (r258765)
@@ -5864,14 +5864,6 @@ sctp_pcb_init()
for (i = 0; i < SCTP_STACK_VTAG_HASH_SIZE; i++) {
LIST_INIT(&SCTP_BASE_INFO(vtag_timewait)[i]);
}
- /*
- * Only initialize non-VNET global mutexes for the
- * default instance.
- */
- if (IS_DEFAULT_VNET(curvnet)) {
- SCTP_ITERATOR_LOCK_INIT();
- SCTP_IPI_ITERATOR_WQ_INIT();
- }
sctp_startup_iterator();
#if defined(__FreeBSD__) && defined(SCTP_MCORE_INPUT) && defined(SMP)
More information about the svn-src-all
mailing list