| From 0f34f30a1be80f3f59efeaab596396bc698e7337 Mon Sep 17 00:00:00 2001 |
| From: Paul Blakey <paulb@mellanox.com> |
| Date: Thu, 30 Jan 2020 18:04:36 +0200 |
| Subject: netfilter: flowtable: Fix missing flush hardware on table free |
| |
| From: Paul Blakey <paulb@mellanox.com> |
| |
| commit 0f34f30a1be80f3f59efeaab596396bc698e7337 upstream. |
| |
| If entries exist when freeing a hardware offload enabled table, |
| we queue work for hardware while running the gc iteration. |
| |
| Execute it (flush) after queueing. |
| |
| Fixes: c29f74e0df7a ("netfilter: nf_flow_table: hardware offload support") |
| Signed-off-by: Paul Blakey <paulb@mellanox.com> |
| Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| net/netfilter/nf_flow_table_core.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| --- a/net/netfilter/nf_flow_table_core.c |
| +++ b/net/netfilter/nf_flow_table_core.c |
| @@ -553,6 +553,7 @@ void nf_flow_table_free(struct nf_flowta |
| cancel_delayed_work_sync(&flow_table->gc_work); |
| 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); |
| rhashtable_destroy(&flow_table->rhashtable); |
| } |
| EXPORT_SYMBOL_GPL(nf_flow_table_free); |