net: dsa: b53: Fix statistics readings
authorFlorian Fainelli <f.fainelli@gmail.com>
Tue, 21 Jun 2016 01:26:53 +0000 (18:26 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 23 Jun 2016 19:13:48 +0000 (15:13 -0400)
Due to a typo we would always be using the MIB counter width of the
first element of the counter array instead of the current element, and
we would always be accessing the register statistics with a 64-bits
read, while some could be 32-bits. This got unnoticed in testing with
MDIO and SRAB which tolerate doing this, but testing with the SPI bus
revealed bogus values being returned. Fix this by using the proper
iterator here.

Fixes: 967dd82ffc52 ("net: dsa: b53: Add support for Broadcom RoboSwitch")
Reported-by: Jonas Gorski <jogo@openwrt.org>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/b53/b53_common.c

index 5321083379c748c3e0bb4d9f97bc193804445e61..444de66667b918946040de3fa14d4fc0aec44cd0 100644 (file)
@@ -679,7 +679,7 @@ static void b53_get_ethtool_stats(struct dsa_switch *ds, int port,
        for (i = 0; i < mib_size; i++) {
                s = &mibs[i];
 
-               if (mibs->size == 8) {
+               if (s->size == 8) {
                        b53_read64(dev, B53_MIB_PAGE(port), s->offset, &val);
                } else {
                        u32 val32;