svn commit: r266067 - stable/9/sys/netinet

Michael Tuexen tuexen at FreeBSD.org
Wed May 14 18:20:36 UTC 2014


Author: tuexen
Date: Wed May 14 18:20:35 2014
New Revision: 266067
URL: http://svnweb.freebsd.org/changeset/base/266067

Log:
  MFC r258765:
  
  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.

Modified:
  stable/9/sys/netinet/sctp_bsd_addr.c
  stable/9/sys/netinet/sctp_pcb.c
Directory Properties:
  stable/9/sys/   (props changed)

Modified: stable/9/sys/netinet/sctp_bsd_addr.c
==============================================================================
--- stable/9/sys/netinet/sctp_bsd_addr.c	Wed May 14 18:18:16 2014	(r266066)
+++ stable/9/sys/netinet/sctp_bsd_addr.c	Wed May 14 18:20:35 2014	(r266067)
@@ -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: stable/9/sys/netinet/sctp_pcb.c
==============================================================================
--- stable/9/sys/netinet/sctp_pcb.c	Wed May 14 18:18:16 2014	(r266066)
+++ stable/9/sys/netinet/sctp_pcb.c	Wed May 14 18:20:35 2014	(r266067)
@@ -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-stable-9 mailing list