diff options
author | Gleb Smirnoff <glebius@FreeBSD.org> | 2015-05-19 14:02:40 +0000 |
---|---|---|
committer | Gleb Smirnoff <glebius@FreeBSD.org> | 2015-05-19 14:02:40 +0000 |
commit | 30fe681e44a333c7f48f25fa13b44c487fe6f559 (patch) | |
tree | 957de8a871c8313258d97f803d36c5ad39116c01 /sys/netpfil/pf | |
parent | b3a5a8e4c1b9088ce835798aab8665a081914721 (diff) | |
download | src-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.c | 2 |
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); |