net/mlx5: cleanup allocation of ethtool stats

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")
Cc: stable@dpdk.org

Signed-off-by: Thierry Herbelot <thierry.herbelot@6wind.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
This commit is contained in:
Thierry Herbelot 2017-11-17 14:51:34 +01:00 committed by Ferruh Yigit
parent 37a725d66d
commit 25b73ba6f3

View File

@ -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;