net: lan9303: Fix read error execution path
authorJerry Ray <jerry.ray@microchip.com>
Fri, 9 Dec 2022 15:35:02 +0000 (09:35 -0600)
committerJakub Kicinski <kuba@kernel.org>
Mon, 12 Dec 2022 20:53:56 +0000 (12:53 -0800)
This patch fixes an issue where a read failure of a port statistic counter
will return unknown results.  While it is highly unlikely the read will
ever fail, it is much cleaner to return a zero for the stat count.

Fixes: a1292595e006 ("net: dsa: add new DSA switch driver for the SMSC-LAN9303")
Signed-off-by: Jerry Ray <jerry.ray@microchip.com>
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Link: https://lore.kernel.org/r/20221209153502.7429-1-jerry.ray@microchip.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/dsa/lan9303-core.c

index 80f07bd20593434387e5d65a86cd52a292d8e04f..2e270b479143272b0243c618155c6a4c2db8b4ac 100644 (file)
@@ -1005,9 +1005,11 @@ static void lan9303_get_ethtool_stats(struct dsa_switch *ds, int port,
                ret = lan9303_read_switch_port(
                        chip, port, lan9303_mib[u].offset, &reg);
 
-               if (ret)
+               if (ret) {
                        dev_warn(chip->dev, "Reading status port %d reg %u failed\n",
                                 port, lan9303_mib[u].offset);
+                       reg = 0;
+               }
                data[u] = reg;
        }
 }