net/mlx5e: Present the representors SW stats when state is not opened
authorTariq Toukan <tariqt@mellanox.com>
Thu, 8 Nov 2018 09:37:24 +0000 (11:37 +0200)
committerSaeed Mahameed <saeedm@mellanox.com>
Fri, 25 Jan 2019 20:16:14 +0000 (12:16 -0800)
This behavior is already adopted for all other cases in the cited patch.
The representor's functions were missed, here we modify the them to
behave similarly.

Fixes: 8bfaf07f7806 ("net/mlx5e: Present SW stats when state is not opened")
Signed-off-by: Tariq Toukan <tariqt@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c

index 04736212a21c9eb0f72c9ca7b5a95b8590626f84..22f686b779efa5a9a28d2a3b95205f9637f78fa5 100644 (file)
@@ -162,21 +162,19 @@ static void mlx5e_rep_update_hw_counters(struct mlx5e_priv *priv)
 static void mlx5e_rep_update_sw_counters(struct mlx5e_priv *priv)
 {
        struct mlx5e_sw_stats *s = &priv->stats.sw;
-       struct mlx5e_rq_stats *rq_stats;
-       struct mlx5e_sq_stats *sq_stats;
        int i, j;
 
        memset(s, 0, sizeof(*s));
-       for (i = 0; i < priv->channels.num; i++) {
-               struct mlx5e_channel *c = priv->channels.c[i];
-
-               rq_stats = c->rq.stats;
+       for (i = 0; i < mlx5e_get_netdev_max_channels(priv->netdev); i++) {
+               struct mlx5e_channel_stats *channel_stats =
+                       &priv->channel_stats[i];
+               struct mlx5e_rq_stats *rq_stats = &channel_stats->rq;
 
                s->rx_packets   += rq_stats->packets;
                s->rx_bytes     += rq_stats->bytes;
 
-               for (j = 0; j < priv->channels.params.num_tc; j++) {
-                       sq_stats = c->sq[j].stats;
+               for (j = 0; j < priv->max_opened_tc; j++) {
+                       struct mlx5e_sq_stats *sq_stats = &channel_stats->sq[j];
 
                        s->tx_packets           += sq_stats->packets;
                        s->tx_bytes             += sq_stats->bytes;
@@ -195,8 +193,7 @@ static void mlx5e_rep_get_ethtool_stats(struct net_device *dev,
                return;
 
        mutex_lock(&priv->state_lock);
-       if (test_bit(MLX5E_STATE_OPENED, &priv->state))
-               mlx5e_rep_update_sw_counters(priv);
+       mlx5e_rep_update_sw_counters(priv);
        mlx5e_rep_update_hw_counters(priv);
        mutex_unlock(&priv->state_lock);