[dpdk-dev] [PATCH] net/mlx5: fix flow counters deletion in Verbs

Shahaf Shuler shahafs at mellanox.com
Sun Oct 28 13:53:26 CET 2018


Saturday, October 27, 2018 1:54 PM¸ Slava Ovsiienko:
> Subject: [PATCH] net/mlx5: fix flow counters deletion in Verbs
> 
> The Flow counters created with Verbs are erroneously destroyed in Flow
> remove function (flow_verbs_remove()). Counter Verbs handles stored in
> the translated rule buffer become invalid.
> If rule is reapplied with these invalid counter handles the driver hangs.
> 
> The counter should be destroyed with Verbs in the Flow destroy function.
> The Flow remove function should keep counters intact.
> 
> Fixes: 60bd8c9747e8 ("net/mlx5: add count flow action")
> Cc: stable at dpdk.org
> 

Very nice commit log.

> Signed-off-by: Viacheslav Ovsiienko <viacheslavo at mellanox.com>

Acked-by: Shahaf Shuler <shahafs at mellanox.com>

Applied to next-net-mlx, thanks. 

> ---
>  drivers/net/mlx5/mlx5_flow_verbs.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/net/mlx5/mlx5_flow_verbs.c
> b/drivers/net/mlx5/mlx5_flow_verbs.c
> index 81bc39f..2e506b9 100644
> --- a/drivers/net/mlx5/mlx5_flow_verbs.c
> +++ b/drivers/net/mlx5/mlx5_flow_verbs.c
> @@ -1669,10 +1669,6 @@
>  			verbs->hrxq = NULL;
>  		}
>  	}
> -	if (flow->counter) {
> -		flow_verbs_counter_release(flow->counter);
> -		flow->counter = NULL;
> -	}
>  }
> 
>  /**
> @@ -1696,6 +1692,10 @@
>  		LIST_REMOVE(dev_flow, next);
>  		rte_free(dev_flow);
>  	}
> +	if (flow->counter) {
> +		flow_verbs_counter_release(flow->counter);
> +		flow->counter = NULL;
> +	}
>  }
> 
>  /**
> --
> 1.8.3.1



More information about the dev mailing list