net: dsa: sja1105: fix displaced ethtool statistics counters
authorVladimir Oltean <vladimir.oltean@nxp.com>
Tue, 18 Mar 2025 11:57:14 +0000 (13:57 +0200)
committerJakub Kicinski <kuba@kernel.org>
Mon, 24 Mar 2025 22:20:23 +0000 (15:20 -0700)
commit00eb88752f48615ae7b4c1df6f9271cdd62c1d95
treee9065e3cf585029b8ecea5883c361807838e8700
parent4af9939a4977e05ccaaa645848f6208e82e06c61
net: dsa: sja1105: fix displaced ethtool statistics counters

Port counters with no name (aka
sja1105_port_counters[__SJA1105_COUNTER_UNUSED]) are skipped when
reporting sja1105_get_sset_count(), but are not skipped during
sja1105_get_strings() and sja1105_get_ethtool_stats().

As a consequence, the first reported counter has an empty name and a
bogus value (reads from area 0, aka MAC, from offset 0, bits start:end
0:0). Also, the last counter (N_NOT_REACH on E/T, N_RX_BCAST on P/Q/R/S)
gets pushed out of the statistics counters that get shown.

Skip __SJA1105_COUNTER_UNUSED consistently, so that the bogus counter
with an empty name disappears, and in its place appears a valid counter.

Fixes: 039b167d68a3 ("net: dsa: sja1105: don't use burst SPI reads for port statistics")
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20250318115716.2124395-2-vladimir.oltean@nxp.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/dsa/sja1105/sja1105_ethtool.c