aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/netinet/in_pcb.h27
-rw-r--r--sys/netinet/ip_dummynet.c5
-rw-r--r--sys/netinet/ip_fw2.c5
-rw-r--r--sys/netinet/ip_mroute.c5
4 files changed, 33 insertions, 9 deletions
diff --git a/sys/netinet/in_pcb.h b/sys/netinet/in_pcb.h
index d1c5413b71bc..cf542f62ab7e 100644
--- a/sys/netinet/in_pcb.h
+++ b/sys/netinet/in_pcb.h
@@ -244,9 +244,14 @@ struct inpcbinfo { /* XXX documentation, prefixes */
#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)
+#define INP_LOCK_ASSERT(inp) do { \
+ mtx_assert(&(inp)->inp_mtx, MA_OWNED); \
+ NET_ASSERT_GIANT(); \
+} while (0)
#else
-#define INP_LOCK_ASSERT(inp)
+#define INP_LOCK_ASSERT(inp) do { \
+ NET_ASSERT_GIANT(); \
+} while (0)
#endif
#define INP_INFO_LOCK_INIT(ipi, d) \
@@ -256,11 +261,21 @@ struct inpcbinfo { /* XXX documentation, prefixes */
#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)
+#define INP_INFO_RLOCK_ASSERT(ipi) do { \
+ mtx_assert(&(ipi)->ipi_mtx, MA_OWNED); \
+ NET_ASSERT_GIANT(); \
+} while (0)
+#define INP_INFO_WLOCK_ASSERT(ipi) do { \
+ mtx_assert(&(ipi)->ipi_mtx, MA_OWNED); \
+ NET_ASSERT_GIANT(); \
+} while (0)
#else
-#define INP_INFO_RLOCK_ASSERT(ipi)
-#define INP_INFO_WLOCK_ASSERT(ipi)
+#define INP_INFO_RLOCK_ASSERT(ipi) do { \
+ NET_ASSERT_GIANT(); \
+} while (0)
+#define INP_INFO_WLOCK_ASSERT(ipi) do { \
+ NET_ASSERT_GIANT(); \
+} while (0)
#endif
#define INP_PCBHASH(faddr, lport, fport, mask) \
diff --git a/sys/netinet/ip_dummynet.c b/sys/netinet/ip_dummynet.c
index 2559c7ebeaf7..62f56a67b01d 100644
--- a/sys/netinet/ip_dummynet.c
+++ b/sys/netinet/ip_dummynet.c
@@ -171,7 +171,10 @@ static struct mtx dummynet_mtx;
#define DUMMYNET_LOCK_DESTROY() mtx_destroy(&dummynet_mtx)
#define DUMMYNET_LOCK() mtx_lock(&dummynet_mtx)
#define DUMMYNET_UNLOCK() mtx_unlock(&dummynet_mtx)
-#define DUMMYNET_LOCK_ASSERT() mtx_assert(&dummynet_mtx, MA_OWNED)
+#define DUMMYNET_LOCK_ASSERT() do { \
+ mtx_assert(&dummynet_mtx, MA_OWNED); \
+ NET_ASSERT_GIANT(); \
+} while (0)
static int config_pipe(struct dn_pipe *p);
static int ip_dn_ctl(struct sockopt *sopt);
diff --git a/sys/netinet/ip_fw2.c b/sys/netinet/ip_fw2.c
index abe1af698e2e..f640e248fb65 100644
--- a/sys/netinet/ip_fw2.c
+++ b/sys/netinet/ip_fw2.c
@@ -136,7 +136,10 @@ struct ip_fw_chain {
#define IPFW_LOCK_DESTROY(_chain) mtx_destroy(&(_chain)->mtx)
#define IPFW_LOCK(_chain) mtx_lock(&(_chain)->mtx)
#define IPFW_UNLOCK(_chain) mtx_unlock(&(_chain)->mtx)
-#define IPFW_LOCK_ASSERT(_chain) mtx_assert(&(_chain)->mtx, MA_OWNED)
+#define IPFW_LOCK_ASSERT(_chain) do { \
+ mtx_assert(&(_chain)->mtx, MA_OWNED); \
+ NET_ASSERT_GIANT(); \
+} while (0)
/*
* list of rules for layer 3
diff --git a/sys/netinet/ip_mroute.c b/sys/netinet/ip_mroute.c
index 6d7f213f2b4e..c4ef4879229d 100644
--- a/sys/netinet/ip_mroute.c
+++ b/sys/netinet/ip_mroute.c
@@ -104,7 +104,10 @@ SYSCTL_OPAQUE(_net_inet_ip, OID_AUTO, mfctable, CTLFLAG_RD,
static struct mtx mfc_mtx;
#define MFC_LOCK() mtx_lock(&mfc_mtx)
#define MFC_UNLOCK() mtx_unlock(&mfc_mtx)
-#define MFC_LOCK_ASSERT() mtx_assert(&mfc_mtx, MA_OWNED)
+#define MFC_LOCK_ASSERT() do { \
+ mtx_assert(&mfc_mtx, MA_OWNED); \
+ NET_ASSERT_GIANT(); \
+} while (0)
#define MFC_LOCK_INIT() mtx_init(&mfc_mtx, "mroute mfc table", NULL, MTX_DEF)
#define MFC_LOCK_DESTROY() mtx_destroy(&mfc_mtx)