aboutsummaryrefslogtreecommitdiff
path: root/sys/netpfil/pf
diff options
context:
space:
mode:
authorGleb Smirnoff <glebius@FreeBSD.org>2015-05-19 14:02:40 +0000
committerGleb Smirnoff <glebius@FreeBSD.org>2015-05-19 14:02:40 +0000
commit30fe681e44a333c7f48f25fa13b44c487fe6f559 (patch)
tree957de8a871c8313258d97f803d36c5ad39116c01 /sys/netpfil/pf
parentb3a5a8e4c1b9088ce835798aab8665a081914721 (diff)
downloadsrc-30fe681e44a333c7f48f25fa13b44c487fe6f559.tar.gz
src-30fe681e44a333c7f48f25fa13b44c487fe6f559.zip
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.
Notes
Notes: svn path=/head/; revision=283106
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 c20e00acbe54..3c3556f59ae6 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);