summaryrefslogtreecommitdiffstats
path: root/sys/netpfil/pf
diff options
context:
space:
mode:
authorglebius <glebius@FreeBSD.org>2015-05-19 14:02:40 +0000
committerglebius <glebius@FreeBSD.org>2015-05-19 14:02:40 +0000
commit66a29f873161adb70233a6c2ae69d99296cb9065 (patch)
tree957de8a871c8313258d97f803d36c5ad39116c01 /sys/netpfil/pf
parent4eff8e373fa9a7e4d919392e60674513b3fb4427 (diff)
downloadFreeBSD-src-66a29f873161adb70233a6c2ae69d99296cb9065.zip
FreeBSD-src-66a29f873161adb70233a6c2ae69d99296cb9065.tar.gz
During module unload unlock rules before destroying UMA zones, which
may sleep in uma_drain(). It is safe to unlock here, since we are already dehooked from pfil(9) and all pf threads had quit. Sponsored by: Nginx, Inc.
Diffstat (limited to 'sys/netpfil/pf')
-rw-r--r--sys/netpfil/pf/pf_ioctl.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/netpfil/pf/pf_ioctl.c b/sys/netpfil/pf/pf_ioctl.c
index c20e00a..3c3556f 100644
--- a/sys/netpfil/pf/pf_ioctl.c
+++ b/sys/netpfil/pf/pf_ioctl.c
@@ -3756,6 +3756,7 @@ pf_unload(void)
wakeup_one(pf_purge_thread);
rw_sleep(pf_purge_thread, &pf_rules_lock, 0, "pftmo", 0);
}
+ PF_RULES_WUNLOCK();
pf_normalize_cleanup();
pfi_cleanup();
pfr_cleanup();
@@ -3763,7 +3764,6 @@ pf_unload(void)
pf_cleanup();
if (IS_DEFAULT_VNET(curvnet))
pf_mtag_cleanup();
- PF_RULES_WUNLOCK();
destroy_dev(pf_dev);
rw_destroy(&pf_rules_lock);
sx_destroy(&pf_ioctl_lock);
OpenPOWER on IntegriCloud