On October 2, 2026 3:07:52 PM GMT+02:00, Petr Oros <[email protected]> wrote:
>tx_restart, tx_busy, rx_buf_failed and rx_page_failed in struct ice_vsi
>are u32, but ice_update_vsi_ring_stats() fills them with sums of the
>64-bit per ring counters. The values are truncated and the ethtool
>statistics exported from them wrap at 2^32 while the ring counters keep
>counting.
>
>Make them u64 like tx_linearize next to them.
>
>i40e fixed the same truncation in commit 3b8428b84539 ("i40e: fix
>unsigned stat widths").
>
>Fixes: fcea6f3da546 ("ice: Add stats and ethtool support")
>Assisted-by: LLM
>Signed-off-by: Petr Oros <[email protected]>
>---
> drivers/net/ethernet/intel/ice/ice.h | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
>diff --git a/drivers/net/ethernet/intel/ice/ice.h 
>b/drivers/net/ethernet/intel/ice/ice.h
>index 6c596e5a315175..a985b81efbe2d6 100644
>--- a/drivers/net/ethernet/intel/ice/ice.h
>+++ b/drivers/net/ethernet/intel/ice/ice.h
>@@ -344,10 +344,10 @@ struct ice_vsi {
>       u64 tx_linearize;
>       DECLARE_BITMAP(state, ICE_VSI_STATE_NBITS);
>       unsigned int current_netdev_flags;
>-      u32 tx_restart;
>-      u32 tx_busy;
>-      u32 rx_buf_failed;
>-      u32 rx_page_failed;
>+      u64 tx_restart;
>+      u64 tx_busy;
>+      u64 rx_buf_failed;
>+      u64 rx_page_failed;
>       u16 num_q_vectors;
>       /* tell if only dynamic irq allocation is allowed */
>       bool irq_dyn_alloc;

Reviewed-by: Ivan Vecera <[email protected]>

Reply via email to