Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 5 Nov 2003 13:17:05 -0800 (PST)
From:      Sam Leffler <sam@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 41476 for review
Message-ID:  <200311052117.hA5LH5Qf043470@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=41476

Change 41476 by sam@sam_ebb on 2003/11/05 13:16:57

	Until IPv6 is locked we cannot make assertions about the
	inpcb's.  Rather than scatter #ifdef INET6's around the
	code; do it at the source of the ASSERT macros.

Affected files ...

.. //depot/projects/netperf/sys/netinet/in_pcb.h#12 edit

Differences ...

==== //depot/projects/netperf/sys/netinet/in_pcb.h#12 (text+ko) ====

@@ -246,12 +246,21 @@
 	struct	mtx ipi_mtx;
 };
 
+/*
+ * NB: We cannot enable assertions when IPv6 is configured as
+ *     this code is shared by both IPv4 and IPv6 and IPv6 is
+ *     not properly locked.
+ */
 #define INP_LOCK_INIT(inp, d) \
 	mtx_init(&(inp)->inp_mtx, (d), NULL, MTX_DEF | MTX_RECURSE | MTX_DUPOK)
 #define INP_LOCK_DESTROY(inp)	mtx_destroy(&(inp)->inp_mtx)
 #define INP_LOCK(inp)		mtx_lock(&(inp)->inp_mtx)
 #define INP_UNLOCK(inp)		mtx_unlock(&(inp)->inp_mtx)
+#ifndef INET6
 #define INP_LOCK_ASSERT(inp)	mtx_assert(&(inp)->inp_mtx, MA_OWNED)
+#else
+#define INP_LOCK_ASSERT(inp)
+#endif
 
 #define INP_INFO_LOCK_INIT(ipi, d) \
 	mtx_init(&(ipi)->ipi_mtx, (d), NULL, MTX_DEF | MTX_RECURSE)
@@ -259,8 +268,13 @@
 #define INP_INFO_WLOCK(ipi)	mtx_lock(&(ipi)->ipi_mtx)
 #define INP_INFO_RUNLOCK(ipi)	mtx_unlock(&(ipi)->ipi_mtx)
 #define INP_INFO_WUNLOCK(ipi)	mtx_unlock(&(ipi)->ipi_mtx)
+#ifndef INET6
 #define INP_INFO_RLOCK_ASSERT(ipi)	mtx_assert(&(ipi)->ipi_mtx, MA_OWNED)
 #define INP_INFO_WLOCK_ASSERT(ipi)	mtx_assert(&(ipi)->ipi_mtx, MA_OWNED)
+#else
+#define INP_INFO_RLOCK_ASSERT(ipi)
+#define INP_INFO_WLOCK_ASSERT(ipi)
+#endif
 
 #define INP_PCBHASH(faddr, lport, fport, mask) \
 	(((faddr) ^ ((faddr) >> 16) ^ ntohs((lport) ^ (fport))) & (mask))



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