diff options
author | David S. Miller <davem@davemloft.net> | 2021-07-02 13:36:35 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2021-07-02 13:36:35 -0700 |
commit | 99f47ea437c113df0fb640ea87e0efd3838510aa (patch) | |
tree | e5ee5a43052d2689e19a42fb581ad982f59147d8 /drivers | |
parent | a019abd8022061b917da767cd1a66ed823724eab (diff) | |
parent | 7cc93d888df764a13f196e3d4aef38869f7dd217 (diff) | |
download | lwn-99f47ea437c113df0fb640ea87e0efd3838510aa.tar.gz lwn-99f47ea437c113df0fb640ea87e0efd3838510aa.zip |
Merge branch 'nfp-ct-fixes'
Simon Horman says:
====================
small tc conntrack fixes
Louis Peens says:
The first patch makes sure that any callbacks registered to
the ct->nf_tables table are cleaned up before freeing.
The second patch removes what was effectively a workaround
in the nfp driver because of the missing cleanup in patch 1.
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/ethernet/netronome/nfp/flower/conntrack.c | 13 |
1 files changed, 0 insertions, 13 deletions
diff --git a/drivers/net/ethernet/netronome/nfp/flower/conntrack.c b/drivers/net/ethernet/netronome/nfp/flower/conntrack.c index 273d529d43c2..128020b1573e 100644 --- a/drivers/net/ethernet/netronome/nfp/flower/conntrack.c +++ b/drivers/net/ethernet/netronome/nfp/flower/conntrack.c @@ -1141,20 +1141,7 @@ int nfp_fl_ct_del_flow(struct nfp_fl_ct_map_entry *ct_map_ent) nfp_fl_ct_clean_flow_entry(ct_entry); kfree(ct_map_ent); - /* If this is the last pre_ct_rule it means that it is - * very likely that the nft table will be cleaned up next, - * as this happens on the removal of the last act_ct flow. - * However we cannot deregister the callback on the removal - * of the last nft flow as this runs into a deadlock situation. - * So deregister the callback on removal of the last pre_ct flow - * and remove any remaining nft flow entries. We also cannot - * save this state and delete the callback later since the - * nft table would already have been freed at that time. - */ if (!zt->pre_ct_count) { - nf_flow_table_offload_del_cb(zt->nft, - nfp_fl_ct_handle_nft_flow, - zt); zt->nft = NULL; nfp_fl_ct_clean_nft_entries(zt); } |