mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
netfilter: flowtable: Fix flushing of offloaded flows on free
Freeing a flowtable with offloaded flows, the flow are deleted from
hardware but are not deleted from the flow table, leaking them,
and leaving their offload bit on.
Add a second pass of the disabled gc to delete the these flows from
the flow table before freeing it.
Fixes: c29f74e0df
("netfilter: nf_flow_table: hardware offload support")
Signed-off-by: Paul Blakey <paulb@mellanox.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
This commit is contained in:
parent
41e9ec5a54
commit
c921ffe853
1 changed files with 3 additions and 0 deletions
|
@ -554,6 +554,9 @@ void nf_flow_table_free(struct nf_flowtable *flow_table)
|
|||
nf_flow_table_iterate(flow_table, nf_flow_table_do_cleanup, NULL);
|
||||
nf_flow_table_iterate(flow_table, nf_flow_offload_gc_step, flow_table);
|
||||
nf_flow_table_offload_flush(flow_table);
|
||||
if (nf_flowtable_hw_offload(flow_table))
|
||||
nf_flow_table_iterate(flow_table, nf_flow_offload_gc_step,
|
||||
flow_table);
|
||||
rhashtable_destroy(&flow_table->rhashtable);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(nf_flow_table_free);
|
||||
|
|
Loading…
Add table
Reference in a new issue