[dpdk-dev] [PATCH] net/mlx5: cleanup the allocation of the buffer used for the ethtool stats

Nelio Laranjeiro nelio.laranjeiro at 6wind.com
Fri Nov 17 08:55:00 CET 2017


+ stable at dpdk.org

On Thu, Nov 16, 2017 at 05:34:47PM +0100, Thierry Herbelot wrote:
> Simplify the computation for the needed size:
> - exact size for the structure header,
> - exact size for a number of 64-bit counters.
> 
> Fixes: a4193ae3bc4f ('net/mlx5: support extended statistics')
> 
> Signed-off-by: Thierry Herbelot <thierry.herbelot at 6wind.com>
> ---
>  drivers/net/mlx5/mlx5_stats.c | 8 +++-----
>  1 file changed, 3 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/net/mlx5/mlx5_stats.c b/drivers/net/mlx5/mlx5_stats.c
> index 5e225d3740d2..2427585f71ca 100644
> --- a/drivers/net/mlx5/mlx5_stats.c
> +++ b/drivers/net/mlx5/mlx5_stats.c
> @@ -143,11 +143,9 @@ priv_read_dev_counters(struct priv *priv, uint64_t *stats)
>  	struct mlx5_xstats_ctrl *xstats_ctrl = &priv->xstats_ctrl;
>  	unsigned int i;
>  	struct ifreq ifr;
> -	unsigned int stats_sz = (xstats_ctrl->stats_n * sizeof(uint64_t)) +
> -				 sizeof(struct ethtool_stats);
> -	struct ethtool_stats et_stats[(stats_sz + (
> -				      sizeof(struct ethtool_stats) - 1)) /
> -				      sizeof(struct ethtool_stats)];
> +	unsigned int stats_sz = xstats_ctrl->stats_n * sizeof(uint64_t);
> +	unsigned char et_stat_buf[sizeof(struct ethtool_stats) + stats_sz];
> +	struct ethtool_stats *et_stats = (struct ethtool_stats *)et_stat_buf;
>  
>  	et_stats->cmd = ETHTOOL_GSTATS;
>  	et_stats->n_stats = xstats_ctrl->stats_n;
> -- 
> 2.11.0
 
Acked-by: Nelio Laranjeiro <nelio.laranjeiro at 6wind.com>

Thanks,

-- 
Nélio Laranjeiro
6WIND


More information about the dev mailing list