From 598345da4bf68e8776c4fd8d7b2a061993dcb4fd Mon Sep 17 00:00:00 2001 From: Sam Leffler Date: Wed, 17 Sep 2003 22:06:47 +0000 Subject: [PATCH] Bandaid locking change: mark static rule mutex recursive so re-entry when sending an ICMP packet doesn't cause a panic. A better solution is needed; possibly defering the transmit to a dedicated thread. Observed by: "Aaron Wohl" --- sys/netinet/ip_fw2.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/netinet/ip_fw2.c b/sys/netinet/ip_fw2.c index cf314be74eb4..0d3da1b01c08 100644 --- a/sys/netinet/ip_fw2.c +++ b/sys/netinet/ip_fw2.c @@ -111,7 +111,8 @@ struct ip_fw_chain { struct mtx mtx; /* lock guarding rule list */ }; #define IPFW_LOCK_INIT(_chain) \ - mtx_init(&(_chain)->mtx, "IPFW static rules", NULL, MTX_DEF) + mtx_init(&(_chain)->mtx, "IPFW static rules", NULL, \ + MTX_DEF | MTX_RECURSE) #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)