diff options
author | Dragos Tatulea <dtatulea@nvidia.com> | 2022-11-23 17:59:13 +0300 |
---|---|---|
committer | Saeed Mahameed <saeedm@nvidia.com> | 2023-01-10 09:08:35 +0300 |
commit | b5e23931c45a2f99f60a2f2b98a9e4d5a62a5b13 (patch) | |
tree | 1282912a6d8160b0157a8bf230e6b3eaaade8d13 /drivers | |
parent | 31c70bfe58ef09fe36327ddcced9143a16e9e83d (diff) | |
download | linux-b5e23931c45a2f99f60a2f2b98a9e4d5a62a5b13.tar.xz |
net/mlx5e: IPoIB, Fix child PKEY interface stats on rx path
The current code always does the accounting using the
stats from the parent interface (linked in the rq). This
doesn't work when there are child interfaces configured.
Fix this behavior by always using the stats from the child
interface priv. This will also work for parent only
interfaces: the child (netdev) and parent netdev (rq->netdev)
will point to the same thing.
Fixes: be98737a4faa ("net/mlx5e: Use dynamic per-channel allocations in stats")
Signed-off-by: Dragos Tatulea <dtatulea@nvidia.com>
Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c index c8820ab22169..3df455f6b168 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c @@ -2419,7 +2419,7 @@ static inline void mlx5i_complete_rx_cqe(struct mlx5e_rq *rq, priv = mlx5i_epriv(netdev); tstamp = &priv->tstamp; - stats = rq->stats; + stats = &priv->channel_stats[rq->ix]->rq; flags_rqpn = be32_to_cpu(cqe->flags_rqpn); g = (flags_rqpn >> 28) & 3; |