summaryrefslogtreecommitdiffstats
path: root/freebsd/sys/netpfil
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2018-08-07 14:56:50 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-09-21 10:29:37 +0200
commitc37f9fba70085fedc8eede7559489d2321393005 (patch)
tree042455ebf1fa89a277a825f72e1ed805d0b4d296 /freebsd/sys/netpfil
parentUpdate to FreeBSD head 2017-06-01 (diff)
downloadrtems-libbsd-c37f9fba70085fedc8eede7559489d2321393005.tar.bz2
Update to FreeBSD head 2017-08-01
Git mirror commit f5002f5e5f78cae9f0269d812dc0aedb0339312c. Update #3472.
Diffstat (limited to 'freebsd/sys/netpfil')
-rw-r--r--freebsd/sys/netpfil/pf/pf.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/freebsd/sys/netpfil/pf/pf.c b/freebsd/sys/netpfil/pf/pf.c
index 42f9132d..ca46d16e 100644
--- a/freebsd/sys/netpfil/pf/pf.c
+++ b/freebsd/sys/netpfil/pf/pf.c
@@ -134,6 +134,9 @@ VNET_DEFINE(int, pf_tcp_iss_off);
VNET_DECLARE(int, pf_vnet_active);
#define V_pf_vnet_active VNET(pf_vnet_active)
+static VNET_DEFINE(uint32_t, pf_purge_idx);
+#define V_pf_purge_idx VNET(pf_purge_idx)
+
/*
* Queue for pf_intr() sends.
*/
@@ -1429,7 +1432,6 @@ void
pf_purge_thread(void *unused __unused)
{
VNET_ITERATOR_DECL(vnet_iter);
- u_int idx = 0;
sx_xlock(&pf_end_lock);
while (pf_end_threads == 0) {
@@ -1450,14 +1452,15 @@ pf_purge_thread(void *unused __unused)
* Process 1/interval fraction of the state
* table every run.
*/
- idx = pf_purge_expired_states(idx, pf_hashmask /
+ V_pf_purge_idx =
+ pf_purge_expired_states(V_pf_purge_idx, pf_hashmask /
(V_pf_default_rule.timeout[PFTM_INTERVAL] * 10));
/*
* Purge other expired types every
* PFTM_INTERVAL seconds.
*/
- if (idx == 0) {
+ if (V_pf_purge_idx == 0) {
/*
* Order is important:
* - states and src nodes reference rules