mirror of
https://github.com/torvalds/linux.git
synced 2026-06-01 19:13:47 +02:00
gve: handle overflow when reporting TX consumed descriptors
When the tx tail is less than the head (in cases of wraparound), the TX
consumed descriptor statistic in DQ will be reported as
UINT32_MAX - head + tail, which is incorrect. Mask the difference of
head and tail according to the ring size when reporting the statistic.
Cc: stable@vger.kernel.org
Fixes: 2c9198356d ("gve: Add consumed counts to ethtool stats")
Signed-off-by: Joshua Washington <joshwash@google.com>
Signed-off-by: Harshitha Ramamurthy <hramamurthy@google.com>
Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20250402001037.2717315-1-hramamurthy@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
3a0a3ff659
commit
15970e1b23
|
|
@ -392,7 +392,9 @@ gve_get_ethtool_stats(struct net_device *netdev,
|
|||
*/
|
||||
data[i++] = 0;
|
||||
data[i++] = 0;
|
||||
data[i++] = tx->dqo_tx.tail - tx->dqo_tx.head;
|
||||
data[i++] =
|
||||
(tx->dqo_tx.tail - tx->dqo_tx.head) &
|
||||
tx->mask;
|
||||
}
|
||||
do {
|
||||
start =
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user