]> git.baikalelectronics.ru Git - kernel.git/commitdiff
netfilter: flowtable: Make sure GC works periodically in idle system
authorYinjun Zhang <yinjun.zhang@corigine.com>
Wed, 17 Mar 2021 12:42:24 +0000 (13:42 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Wed, 17 Mar 2021 23:32:21 +0000 (00:32 +0100)
Currently flowtable's GC work is initialized as deferrable, which
means GC cannot work on time when system is idle. So the hardware
offloaded flow may be deleted for timeout, since its used time is
not timely updated.

Resolve it by initializing the GC work as delayed work instead of
deferrable.

Fixes: c29f74e0df7a ("netfilter: nf_flow_table: hardware offload support")
Signed-off-by: Yinjun Zhang <yinjun.zhang@corigine.com>
Signed-off-by: Louis Peens <louis.peens@corigine.com>
Signed-off-by: Simon Horman <simon.horman@netronome.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/nf_flow_table_core.c

index 5fa657b8e03dff15a2fa828f22b09a364e7d5887..c77ba8690ed8d881211d713a604d95fc19f13209 100644 (file)
@@ -506,7 +506,7 @@ int nf_flow_table_init(struct nf_flowtable *flowtable)
 {
        int err;
 
-       INIT_DEFERRABLE_WORK(&flowtable->gc_work, nf_flow_offload_work_gc);
+       INIT_DELAYED_WORK(&flowtable->gc_work, nf_flow_offload_work_gc);
        flow_block_init(&flowtable->flow_block);
        init_rwsem(&flowtable->flow_block_lock);