[dpdk-dev] [PATCH] net/mlx5: fix xstats functions unlock missing
Nélio Laranjeiro
nelio.laranjeiro at 6wind.com
Wed Aug 23 17:09:20 CEST 2017
On Mon, Aug 14, 2017 at 02:32:24PM +0300, Matan Azrad wrote:
> The corrupted code didn't unlock the spinlock in xstats
> get and reset functions error flow.
>
> Hence, if these errors happaned, the device spinlock was
> left locked and many mlx5 device functionalities were blocked.
>
> The fix unlocks the spinlock in the missed places.
>
> Fixes: e62bc9e70608 ("net/mlx5: fix extended statistics")
>
> Signed-off-by: Matan Azrad <matan at mellanox.com>
> Cc: stable at dpdk.org
> ---
> drivers/net/mlx5/mlx5_stats.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/mlx5/mlx5_stats.c b/drivers/net/mlx5/mlx5_stats.c
> index 703f48c..33997af 100644
> --- a/drivers/net/mlx5/mlx5_stats.c
> +++ b/drivers/net/mlx5/mlx5_stats.c
> @@ -442,8 +442,10 @@ mlx5_xstats_get(struct rte_eth_dev *dev,
>
> priv_lock(priv);
> stats_n = priv_ethtool_get_stats_n(priv);
> - if (stats_n < 0)
> + if (stats_n < 0) {
> + priv_unlock(priv);
> return -1;
> + }
> if (xstats_ctrl->stats_n != stats_n)
> priv_xstats_init(priv);
> ret = priv_xstats_get(priv, stats);
> @@ -468,10 +470,11 @@ mlx5_xstats_reset(struct rte_eth_dev *dev)
> priv_lock(priv);
> stats_n = priv_ethtool_get_stats_n(priv);
> if (stats_n < 0)
> - return;
> + goto unlock;
> if (xstats_ctrl->stats_n != stats_n)
> priv_xstats_init(priv);
> priv_xstats_reset(priv);
> +unlock:
> priv_unlock(priv);
> }
>
> --
> 2.7.4
>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro at 6wind.com>
--
Nélio Laranjeiro
6WIND
More information about the dev
mailing list