summaryrefslogtreecommitdiffstats
path: root/sys/net/raw_cb.h
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2004-06-15 04:13:59 +0000
committerrwatson <rwatson@FreeBSD.org>2004-06-15 04:13:59 +0000
commit292410a6b8e787b12658c7d87f2bbaeeb273723a (patch)
tree70b7afe3c67b71a8a1ca81eddfa8ac26528ae28c /sys/net/raw_cb.h
parent029226f3a85acf1d4be6aa09215d8e97ded96cb0 (diff)
downloadFreeBSD-src-292410a6b8e787b12658c7d87f2bbaeeb273723a.zip
FreeBSD-src-292410a6b8e787b12658c7d87f2bbaeeb273723a.tar.gz
Lock down rawcb_list, a global list of control blocks for raw sockets,
using rawcb_mtx. Hold this mutex while modifying or iterating over the control list; this means that the mutex is held over calls into socket delivery code, which no longer causes a lock order reversal as the routing socket code uses a netisr to avoid recursing socket -> routing -> socket. Note: Locking of IPsec consumers of rawcb_list is not included in this commit.
Diffstat (limited to 'sys/net/raw_cb.h')
-rw-r--r--sys/net/raw_cb.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/net/raw_cb.h b/sys/net/raw_cb.h
index 22b100b..177dedf 100644
--- a/sys/net/raw_cb.h
+++ b/sys/net/raw_cb.h
@@ -57,6 +57,7 @@ struct rawcb {
#ifdef _KERNEL
extern LIST_HEAD(rawcb_list_head, rawcb) rawcb_list;
+extern struct mtx rawcb_mtx;
/* protosw entries */
pr_ctlinput_t raw_ctlinput;
OpenPOWER on IntegriCloud