From: Mark Bloch Date: Wed, 11 Sep 2024 20:17:47 +0000 (-0700) Subject: net/mlx5: fs, move hardware fte deletion function reset X-Git-Tag: v6.12-rc1~232^2~23^2~10 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=940390d976902e184e1186d0f7dab3ba884dec84;p=thirdparty%2Fkernel%2Flinux.git net/mlx5: fs, move hardware fte deletion function reset Downstream patches will need this as we might not want to reset it when a pending rule is connected to the FTE. Signed-off-by: Mark Bloch Signed-off-by: Saeed Mahameed Reviewed-by: Jacob Keller Link: https://patch.msgid.link/20240911201757.1505453-6-saeed@kernel.org Signed-off-by: Jakub Kicinski --- diff --git a/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c b/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c index e32725487702a..899d91577a547 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c @@ -683,6 +683,8 @@ static void del_hw_fte(struct fs_node *node) fte->index, fg->id); node->active = false; } + /* Avoid double call to del_hw_fte */ + fte->node.del_hw_func = NULL; } static void del_sw_fte(struct fs_node *node) @@ -2265,8 +2267,6 @@ void mlx5_del_flow_rules(struct mlx5_flow_handle *handle) tree_remove_node(&handle->rule[i]->node, true); if (list_empty(&fte->node.children)) { fte->node.del_hw_func(&fte->node); - /* Avoid double call to del_hw_fte */ - fte->node.del_hw_func = NULL; up_write_ref_node(&fte->node, false); tree_put_node(&fte->node, false); } else if (fte->dests_size) {