net: mscc: ocelot: issue a warning if stats are incorrectly ordered
Ocelot uses regmap_bulk_read() operations to efficiently read stats registers. Currently the implementation relies on the stats layout to be ordered to be most efficient. Issue a warning if any future implementations happen to break this pattern. Signed-off-by: Colin Foster <colin.foster@in-advantage.com> Co-developed-by: Vladimir Oltean <vladimir.oltean@nxp.com> Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
parent
a3bb8f521f
commit
877e7b7c3b
|
@ -602,7 +602,7 @@ EXPORT_SYMBOL(ocelot_port_get_stats64);
|
|||
static int ocelot_prepare_stats_regions(struct ocelot *ocelot)
|
||||
{
|
||||
struct ocelot_stats_region *region = NULL;
|
||||
unsigned int last;
|
||||
unsigned int last = 0;
|
||||
int i;
|
||||
|
||||
INIT_LIST_HEAD(&ocelot->stats_regions);
|
||||
|
@ -619,6 +619,12 @@ static int ocelot_prepare_stats_regions(struct ocelot *ocelot)
|
|||
if (!region)
|
||||
return -ENOMEM;
|
||||
|
||||
/* enum ocelot_stat must be kept sorted in the same
|
||||
* order as ocelot_stats_layout[i].reg in order to have
|
||||
* efficient bulking
|
||||
*/
|
||||
WARN_ON(last >= ocelot_stats_layout[i].reg);
|
||||
|
||||
region->base = ocelot_stats_layout[i].reg;
|
||||
region->count = 1;
|
||||
list_add_tail(®ion->node, &ocelot->stats_regions);
|
||||
|
|
Loading…
Reference in New Issue