Message ID | 20210509193338.451174-1-olteanv@gmail.com |
---|---|
State | Superseded |
Headers | show |
Series | [v2,net] net: dsa: fix error code getting shifted with 4 in dsa_slave_get_sset_count | expand |
Hello: This patch was applied to netdev/net.git (refs/heads/master): On Sun, 9 May 2021 22:33:38 +0300 you wrote: > From: Vladimir Oltean <vladimir.oltean@nxp.com> > > DSA implements a bunch of 'standardized' ethtool statistics counters, > namely tx_packets, tx_bytes, rx_packets, rx_bytes. So whatever the > hardware driver returns in .get_sset_count(), we need to add 4 to that. > > That is ok, except that .get_sset_count() can return a negative error > code, for example: > > [...] Here is the summary with links: - [v2,net] net: dsa: fix error code getting shifted with 4 in dsa_slave_get_sset_count https://git.kernel.org/netdev/net/c/b94cbc909f1d You are awesome, thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html
diff --git a/net/dsa/slave.c b/net/dsa/slave.c index 3689ffa2dbb8..988af45dd38f 100644 --- a/net/dsa/slave.c +++ b/net/dsa/slave.c @@ -798,13 +798,15 @@ static int dsa_slave_get_sset_count(struct net_device *dev, int sset) struct dsa_switch *ds = dp->ds; if (sset == ETH_SS_STATS) { - int count; + int count = 0; - count = 4; - if (ds->ops->get_sset_count) - count += ds->ops->get_sset_count(ds, dp->index, sset); + if (ds->ops->get_sset_count) { + count = ds->ops->get_sset_count(ds, dp->index, sset); + if (count < 0) + return count; + } - return count; + return count + 4; } else if (sset == ETH_SS_TEST) { return net_selftest_get_count(); }