Message ID | 1622582726-206907-1-git-send-email-danielj@nvidia.com |
---|---|
State | New |
Headers | show |
Series | [SRU,F:linux-bluefield] netfilter: flowtable: Free block_cb when being deleted | expand |
On 01.06.21 23:25, Daniel Jurgens wrote: > From: Roi Dayan <roid@mellanox.com> > > BugLink: https://bugs.launchpad.net/bugs/1927252 > > Free block_cb memory when asked to be deleted. > > Fixes: 978703f42549 ("netfilter: flowtable: Add API for registering to flow table events") > Signed-off-by: Roi Dayan <roid@mellanox.com> > Reviewed-by: Paul Blakey <paulb@mellanox.com> > Reviewed-by: Oz Shlomo <ozsh@mellanox.com> > Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> > (backported from commit bc8e71314e8444c6315c482441f3204c032ab327) > [danielj: backported because of the flow_block_lock change from mutex] > Signed-off-by: Daniel Jurgens <danielj@nvidia.com> > > --- > net/netfilter/nf_flow_table_core.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/net/netfilter/nf_flow_table_core.c b/net/netfilter/nf_flow_table_core.c > index 5144e31..0336117 100644 > --- a/net/netfilter/nf_flow_table_core.c > +++ b/net/netfilter/nf_flow_table_core.c > @@ -427,10 +427,12 @@ void nf_flow_table_offload_del_cb(struct nf_flowtable *flow_table, > > mutex_lock(&flow_table->flow_block_lock); > block_cb = flow_block_cb_lookup(block, cb, cb_priv); > - if (block_cb) > + if (block_cb) { > list_del(&block_cb->list); > - else > + flow_block_cb_free(block_cb); > + } else { > WARN_ON(true); > + } > mutex_unlock(&flow_table->flow_block_lock); > } > EXPORT_SYMBOL_GPL(nf_flow_table_offload_del_cb); > Asked to re-send with version.
diff --git a/net/netfilter/nf_flow_table_core.c b/net/netfilter/nf_flow_table_core.c index 5144e31..0336117 100644 --- a/net/netfilter/nf_flow_table_core.c +++ b/net/netfilter/nf_flow_table_core.c @@ -427,10 +427,12 @@ void nf_flow_table_offload_del_cb(struct nf_flowtable *flow_table, mutex_lock(&flow_table->flow_block_lock); block_cb = flow_block_cb_lookup(block, cb, cb_priv); - if (block_cb) + if (block_cb) { list_del(&block_cb->list); - else + flow_block_cb_free(block_cb); + } else { WARN_ON(true); + } mutex_unlock(&flow_table->flow_block_lock); } EXPORT_SYMBOL_GPL(nf_flow_table_offload_del_cb);