gve: handle overflow when reporting TX consumed descriptors
authorJoshua Washington <joshwash@google.com>
Wed, 2 Apr 2025 00:10:37 +0000 (00:10 +0000)
committerJakub Kicinski <kuba@kernel.org>
Thu, 3 Apr 2025 22:07:27 +0000 (15:07 -0700)
commit15970e1b23f5c25db88c613fddf9131de086f28e
tree12f420d15242e8f0f76992578c634916ca328ddf
parent3a0a3ff6593d670af2451ec363ccb7b18aec0c0a
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: 2c9198356d56 ("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>
drivers/net/ethernet/google/gve/gve_ethtool.c