> -----Original Message----- > From: Keller, Jacob E <[email protected]> > Sent: Tuesday, November 4, 2025 2:07 AM > To: Loktionov, Aleksandr <[email protected]>; Lobakin, > Aleksander <[email protected]>; Nguyen, Anthony L > <[email protected]>; Kitszel, Przemyslaw > <[email protected]> > Cc: [email protected]; [email protected]; Keller, > Jacob E <[email protected]> > Subject: [PATCH iwl-next 0/9] ice: properly use u64_stats API for all > ring stats > > The ice driver has multiple u64 values stored in the ring structures > for each queue used for statistics. These are accumulated in > ice_update_vsi_stats(). The packet and byte values are read using the > u64_stats API from <linux/u64_stats_sync.h>. > > Several non-standard counters are also accumulated in the same > function, but do not use the u64_stats API. This could result in > load/store tears on 32-bit architectures. Further, since commit > 316580b69d0a ("u64_stats: > provide u64_stats_t type"), the u64 stats API has had u64_stats_t and > access functions which convert to local64_t on 64-bit architectures. > > The ice driver doesn't use u64_stats_t and these access functions. > Thus even on 64-bit architectures it could read inconsistent values. > This series refactors the ice driver to use the updated API. Along the > way I noticed several other issues and inconsistencies which I have > cleaned up, summarized below. > > *) The driver never called u64_stats_init, leaving the syncp > improperly > initialized. Since the field is part of a kzalloc block, this only > impacts 32-bit systens with CONFIG_LOCKDEP enabled. > “systens” → “systems”
Best regards, Alex ... > -- > Jacob Keller <[email protected]>
