Expose network statistics for Wangxun VF drivers by registering the ndo_get_stats64 callback. Signed-off-by: Mengyuan Lou --- 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