Log error message is raised on port stop when using same encap action with two different rules.
It is a false alarm, checking return value not equals zero from hlist unregister function was wrong since it returns 1 if the object is still referenced. Remove the check for return value for encap, decap, modify header and matcher resource release under flow destroy cause all uses list/hlist with return value 0/1. Fixes: ff4064d5b1fe ("net/mlx5: support bulk actions in non-template flow") Signed-off-by: Maayan Kashani <mkash...@nvidia.com> Acked-by: Dariusz Sosnowski <dsosnow...@nvidia.com> Signed-off-by: Bing Zhao <bi...@nvidia.com> --- drivers/net/mlx5/mlx5_flow_hw.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/drivers/net/mlx5/mlx5_flow_hw.c b/drivers/net/mlx5/mlx5_flow_hw.c index 46f6665846..8a59d3c013 100644 --- a/drivers/net/mlx5/mlx5_flow_hw.c +++ b/drivers/net/mlx5/mlx5_flow_hw.c @@ -13792,17 +13792,12 @@ flow_hw_destroy(struct rte_eth_dev *dev, struct rte_flow_hw *flow) if (flow->nt2hws->flow_aux) mlx5_free(flow->nt2hws->flow_aux); - if (flow->nt2hws->rix_encap_decap) { - ret = flow_encap_decap_resource_release(dev, flow->nt2hws->rix_encap_decap); - if (ret) - DRV_LOG(ERR, "failed to release encap decap."); - } + if (flow->nt2hws->rix_encap_decap) + flow_encap_decap_resource_release(dev, flow->nt2hws->rix_encap_decap); if (flow->nt2hws->modify_hdr) { MLX5_ASSERT(flow->nt2hws->modify_hdr->action); - ret = mlx5_hlist_unregister(priv->sh->modify_cmds, - &flow->nt2hws->modify_hdr->entry); - if (ret) - DRV_LOG(ERR, "failed to release modify action."); + mlx5_hlist_unregister(priv->sh->modify_cmds, + &flow->nt2hws->modify_hdr->entry); } if (flow->nt2hws->matcher) flow_hw_unregister_matcher(dev, flow->nt2hws->matcher); -- 2.34.1