Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 30 Nov 2013 12:51:19 +0000 (UTC)
From:      Michael Tuexen <tuexen@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r258765 - head/sys/netinet
Message-ID:  <201311301251.rAUCpJ8Z041954@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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@. 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)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201311301251.rAUCpJ8Z041954>