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@. 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.
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user