diff options
author | Oleksij Rempel <o.rempel@pengutronix.de> | 2021-01-11 11:46:57 +0100 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2021-01-12 20:17:09 -0800 |
commit | c2ec5f2ecf6aeef60c63d1af9ddcacdcbf829d68 (patch) | |
tree | b1342f26aa55ff2f20fd4e8ecdfaeda48b4540a7 /net/dsa | |
parent | 46e05e1df628ab054486eafcc06a3c6512b338a1 (diff) |
net: dsa: add optional stats64 support
Allow DSA drivers to export stats64
Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/dsa')
-rw-r--r-- | net/dsa/slave.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/net/dsa/slave.c b/net/dsa/slave.c index 5d7f6cada6a8..5a1769602e65 100644 --- a/net/dsa/slave.c +++ b/net/dsa/slave.c @@ -1569,6 +1569,18 @@ static struct devlink_port *dsa_slave_get_devlink_port(struct net_device *dev) return dp->ds->devlink ? &dp->devlink_port : NULL; } +static void dsa_slave_get_stats64(struct net_device *dev, + struct rtnl_link_stats64 *s) +{ + struct dsa_port *dp = dsa_slave_to_port(dev); + struct dsa_switch *ds = dp->ds; + + if (ds->ops->get_stats64) + ds->ops->get_stats64(ds, dp->index, s); + else + dev_get_tstats64(dev, s); +} + static const struct net_device_ops dsa_slave_netdev_ops = { .ndo_open = dsa_slave_open, .ndo_stop = dsa_slave_close, @@ -1588,7 +1600,7 @@ static const struct net_device_ops dsa_slave_netdev_ops = { #endif .ndo_get_phys_port_name = dsa_slave_get_phys_port_name, .ndo_setup_tc = dsa_slave_setup_tc, - .ndo_get_stats64 = dev_get_tstats64, + .ndo_get_stats64 = dsa_slave_get_stats64, .ndo_get_port_parent_id = dsa_slave_get_port_parent_id, .ndo_vlan_rx_add_vid = dsa_slave_vlan_rx_add_vid, .ndo_vlan_rx_kill_vid = dsa_slave_vlan_rx_kill_vid, |