Expose network statistics for Wangxun VF drivers by registering the
ndo_get_stats64 callback.
Signed-off-by: Mengyuan Lou <mengyuanlou@net-swift.com>
---
drivers/net/ethernet/wangxun/libwx/wx_lib.c | 2 ++
drivers/net/ethernet/wangxun/ngbevf/ngbevf_main.c | 1 +
drivers/net/ethernet/wangxun/txgbevf/txgbevf_main.c | 1 +
3 files changed, 4 insertions(+)
diff --git a/drivers/net/ethernet/wangxun/libwx/wx_lib.c b/drivers/net/ethernet/wangxun/libwx/wx_lib.c
index ae20733c703d..a4ca01c18c6a 100644
--- a/drivers/net/ethernet/wangxun/libwx/wx_lib.c
+++ b/drivers/net/ethernet/wangxun/libwx/wx_lib.c
@@ -3092,6 +3092,8 @@ void wx_get_stats64(struct net_device *netdev,
}
rcu_read_unlock();
+ if (wx->pdev->is_virtfn)
+ return;
hwstats = &wx->stats;
stats->rx_errors = hwstats->crcerrs + hwstats->rlec;
diff --git a/drivers/net/ethernet/wangxun/ngbevf/ngbevf_main.c b/drivers/net/ethernet/wangxun/ngbevf/ngbevf_main.c
index b6bab050837a..b4817c58992b 100644
--- a/drivers/net/ethernet/wangxun/ngbevf/ngbevf_main.c
+++ b/drivers/net/ethernet/wangxun/ngbevf/ngbevf_main.c
@@ -48,6 +48,7 @@ static const struct net_device_ops ngbevf_netdev_ops = {
.ndo_start_xmit = wx_xmit_frame,
.ndo_validate_addr = eth_validate_addr,
.ndo_set_mac_address = wx_set_mac_vf,
+ .ndo_get_stats64 = wx_get_stats64,
};
static void ngbevf_set_num_queues(struct wx *wx)diff --git a/drivers/net/ethernet/wangxun/txgbevf/txgbevf_main.c b/drivers/net/ethernet/wangxun/txgbevf/txgbevf_main.c
index 2dd119bd52e5..1e30d8f2183a 100644
--- a/drivers/net/ethernet/wangxun/txgbevf/txgbevf_main.c
+++ b/drivers/net/ethernet/wangxun/txgbevf/txgbevf_main.c
@@ -44,6 +44,7 @@ static const struct net_device_ops txgbevf_netdev_ops = {
.ndo_start_xmit = wx_xmit_frame,
.ndo_validate_addr = eth_validate_addr,
.ndo_set_mac_address = wx_set_mac_vf,
+ .ndo_get_stats64 = wx_get_stats64,
};
static void txgbevf_set_num_queues(struct wx *wx)--
2.30.1