Thanks for the review, Jakub. >> for (i = 0U, ring = self->ring[0]; >> self->tx_rings > i; ++i, ring = self->ring[i]) { >> + ring[AQ_VEC_RX_ID].stats.rx.polls++; > > You need to use the u64_stats_update_* infrastructure or make these > stats smaller than u64, cause on non-64bit machines where the stats > will be updated 32bit-by-32bit meaning readers can see a half-updated > counter..
Agree, will secure with stats_update. >> @@ -314,6 +316,7 @@ irqreturn_t aq_vec_isr(int irq, void *private) >> err = -EINVAL; >> goto err_exit; >> } >> + self->ring[0][AQ_VEC_RX_ID].stats.rx.irqs++; Indeed, looks like some leftover debug counter, will remove. Thanks, Igor