diff options
author | glebius <glebius@FreeBSD.org> | 2015-05-19 14:02:40 +0000 |
---|---|---|
committer | glebius <glebius@FreeBSD.org> | 2015-05-19 14:02:40 +0000 |
commit | 66a29f873161adb70233a6c2ae69d99296cb9065 (patch) | |
tree | 957de8a871c8313258d97f803d36c5ad39116c01 /sys/netpfil | |
parent | 4eff8e373fa9a7e4d919392e60674513b3fb4427 (diff) | |
download | FreeBSD-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')
-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 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); |