OSDN Git Service

net: dsa: loop: Hook PHY statistics
authorFlorian Fainelli <f.fainelli@gmail.com>
Wed, 25 Apr 2018 19:12:54 +0000 (12:12 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 27 Apr 2018 15:53:03 +0000 (11:53 -0400)
We just return the same statistics through ethtool_get_stats() and
ethtool_get_phy_stats() for simplicity since this is just a mock-up driver.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/dsa_loop.c

index 9354cc0..58f14af 100644 (file)
@@ -88,7 +88,7 @@ static int dsa_loop_setup(struct dsa_switch *ds)
 
 static int dsa_loop_get_sset_count(struct dsa_switch *ds, int port, int sset)
 {
-       if (sset != ETH_SS_STATS)
+       if (sset != ETH_SS_STATS && sset != ETH_SS_PHY_STATS)
                return 0;
 
        return __DSA_LOOP_CNT_MAX;
@@ -100,7 +100,7 @@ static void dsa_loop_get_strings(struct dsa_switch *ds, int port,
        struct dsa_loop_priv *ps = ds->priv;
        unsigned int i;
 
-       if (stringset != ETH_SS_STATS)
+       if (stringset != ETH_SS_STATS && stringset != ETH_SS_PHY_STATS)
                return;
 
        for (i = 0; i < __DSA_LOOP_CNT_MAX; i++)
@@ -263,6 +263,7 @@ static const struct dsa_switch_ops dsa_loop_driver = {
        .get_strings            = dsa_loop_get_strings,
        .get_ethtool_stats      = dsa_loop_get_ethtool_stats,
        .get_sset_count         = dsa_loop_get_sset_count,
+       .get_ethtool_phy_stats  = dsa_loop_get_ethtool_stats,
        .phy_read               = dsa_loop_phy_read,
        .phy_write              = dsa_loop_phy_write,
        .port_bridge_join       = dsa_loop_port_bridge_join,