svn commit: r197955 - head/sys/netinet

Michael Tuexen tuexen at FreeBSD.org
Sun Oct 11 12:23:56 UTC 2009


Author: tuexen
Date: Sun Oct 11 12:23:56 2009
New Revision: 197955
URL: http://svn.freebsd.org/changeset/base/197955

Log:
  Fix a race condition where a mutex was destroyed while sleeping on it.
  Found while analyzing a report from julian. It might fix his bug.
  Approved by: rrs (mentor)
  MFC after: 3 days

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	Sun Oct 11 11:00:14 2009	(r197954)
+++ head/sys/netinet/sctp_bsd_addr.c	Sun Oct 11 12:23:56 2009	(r197955)
@@ -97,6 +97,7 @@ sctp_iterator_thread(void *v)
 		    &SCTP_BASE_INFO(ipi_iterator_wq_mtx),
 		    0, "waiting_for_work", 0);
 		if (SCTP_BASE_INFO(threads_must_exit)) {
+			SCTP_IPI_ITERATOR_WQ_DESTROY();
 			kthread_exit();
 		}
 		sctp_iterator_worker();

Modified: head/sys/netinet/sctp_pcb.c
==============================================================================
--- head/sys/netinet/sctp_pcb.c	Sun Oct 11 11:00:14 2009	(r197954)
+++ head/sys/netinet/sctp_pcb.c	Sun Oct 11 12:23:56 2009	(r197955)
@@ -5616,7 +5616,6 @@ sctp_pcb_finish(void)
 	SCTP_IP_PKTLOG_DESTROY();
 
 #endif
-	SCTP_IPI_ITERATOR_WQ_DESTROY();
 	SCTP_IPI_ADDR_DESTROY();
 	SCTP_ITERATOR_LOCK_DESTROY();
 	SCTP_STATLOG_DESTROY();


More information about the svn-src-head mailing list