On Tue, Feb 17, 2026 at 07:05:02AM -0800, Stephen Hemminger wrote:
> mlx5_read_queue_counter() casts its uint64_t *stat argument to
> uint32_t * before passing it to mlx5_devx_cmd_queue_counter_query().
> The query function writes a single uint32_t, so:
> 
>   - On little-endian (x86): only the low 32 bits of *stat are
>     written; the upper 32 bits retain whatever value they had
>     before the call (stack garbage or a stale value).
>   - On big-endian (PowerPC): the write hits the wrong half of the
>     64-bit word entirely.
> 
> Use a local uint32_t for the query and widen to uint64_t on
> assignment.
> 
> Fixes: f0c0731b6d40 ("net/mlx5: add counters for hairpin drop")
> Cc: [email protected]
> 
> Signed-off-by: Stephen Hemminger <[email protected]>

Acked-by: Dariusz Sosnowski <[email protected]>

Reply via email to