On Thu, Feb 26, 2026 at 06:26:13PM -0800, Jakub Kicinski wrote:
> This is an AI-generated review of your patch. The human sending this
> email has considered the AI review valid, or at least plausible.
> 
> For local reproduction steps see 
> https://netdev-ai.bots.linux.dev/ai-local.html
> ---
> net: dpaa2-mac: retrieve MAC statistics in one firmware command
> 
> The latest MC firmware version added a new command to retrieve all DPMAC
> counters in a single firmware call. Use this new command, when possible,
> in dpaa2-mac as well. In order to use the dpmac_get_statistics() API,
> two DMA memory areas are used: one to transmit what counters the driver
> is requesting and one to receive the values of those counters. These
> memory areas are allocated and DMA mapped at probe time so that we don't
> waste time at runtime.
> 
> > diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c 
> > b/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c
> > index 422ce13a7c94..63dc597dbd7c 100644
> > --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c
> > +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c
> 

(...)

> > +fallback:
> > +
> > +   /* Fallback and retrieve each counter one by one */
> > +   for (i = 0; i < DPAA2_MAC_NUM_ETHTOOL_STATS; i++) {
> >             err = dpmac_get_counter(mac->mc_io, 0, dpmac_dev->mc_handle,
> >                                     i, &value);
>                                         ^
> 
> Does the fallback path need to pass dpaa2_mac_ethtool_stats[i].id instead
> of i here?
> 
> The old code used a sparse array indexed by enum dpmac_counter_id values:
> 
>     static char dpaa2_mac_ethtool_stats[][ETH_GSTRING_LEN] = {
>         [DPMAC_CNT_ING_ALL_FRAME] = "[mac] rx all frames",
>         ...
>     };
> 
> where the loop index i directly corresponded to the enum value passed to
> dpmac_get_counter(). The new code uses a compact array where array index 0
> contains DPMAC_CNT_ING_ALL_FRAME (enum value 18), but the fallback code
> still passes i (sequential 0, 1, 2...) instead of the stored enum value.
> 
> When i=0, the code requests counter 0 (DPMAC_CNT_ING_FRAME_64) but the
> name is "[mac] rx all frames" (DPMAC_CNT_ING_ALL_FRAME). This would cause
> all statistics to report wrong values for their labels.

Yes, that is indeed true. Thanks for catching it!

Ioana

Reply via email to