net: lan9303: Fix read error execution path
authorJerry Ray <jerry.ray@microchip.com>
Fri, 9 Dec 2022 15:35:02 +0000 (09:35 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 31 Dec 2022 12:32:28 +0000 (13:32 +0100)
[ Upstream commit 8964916d206071b058c6351f88b1966bd58cbde0 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/dsa/lan9303-core.c

index 80f07bd..2e270b4 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;
        }
 }