@@ -1296,15 +1296,16 @@ static void mlx4_en_tx_timeout(struct net_device *dev)
12961296}
12971297
12981298
1299- static struct net_device_stats * mlx4_en_get_stats (struct net_device * dev )
1299+ static struct rtnl_link_stats64 *
1300+ mlx4_en_get_stats64 (struct net_device * dev , struct rtnl_link_stats64 * stats )
13001301{
13011302 struct mlx4_en_priv * priv = netdev_priv (dev );
13021303
13031304 spin_lock_bh (& priv -> stats_lock );
1304- memcpy ( & priv -> ret_stats , & priv -> stats , sizeof ( priv -> stats ) );
1305+ netdev_stats_to_stats64 ( stats , & dev -> stats );
13051306 spin_unlock_bh (& priv -> stats_lock );
13061307
1307- return & priv -> ret_stats ;
1308+ return stats ;
13081309}
13091310
13101311static void mlx4_en_set_default_moderation (struct mlx4_en_priv * priv )
@@ -1876,7 +1877,6 @@ static void mlx4_en_clear_stats(struct net_device *dev)
18761877 if (mlx4_en_DUMP_ETH_STATS (mdev , priv -> port , 1 ))
18771878 en_dbg (HW , priv , "Failed dumping statistics\n" );
18781879
1879- memset (& priv -> stats , 0 , sizeof (priv -> stats ));
18801880 memset (& priv -> pstats , 0 , sizeof (priv -> pstats ));
18811881 memset (& priv -> pkstats , 0 , sizeof (priv -> pkstats ));
18821882 memset (& priv -> port_stats , 0 , sizeof (priv -> port_stats ));
@@ -1892,6 +1892,11 @@ static void mlx4_en_clear_stats(struct net_device *dev)
18921892 priv -> tx_ring [i ]-> bytes = 0 ;
18931893 priv -> tx_ring [i ]-> packets = 0 ;
18941894 priv -> tx_ring [i ]-> tx_csum = 0 ;
1895+ priv -> tx_ring [i ]-> tx_dropped = 0 ;
1896+ priv -> tx_ring [i ]-> queue_stopped = 0 ;
1897+ priv -> tx_ring [i ]-> wake_queue = 0 ;
1898+ priv -> tx_ring [i ]-> tso_packets = 0 ;
1899+ priv -> tx_ring [i ]-> xmit_more = 0 ;
18951900 }
18961901 for (i = 0 ; i < priv -> rx_ring_num ; i ++ ) {
18971902 priv -> rx_ring [i ]-> bytes = 0 ;
@@ -2482,7 +2487,7 @@ static const struct net_device_ops mlx4_netdev_ops = {
24822487 .ndo_stop = mlx4_en_close ,
24832488 .ndo_start_xmit = mlx4_en_xmit ,
24842489 .ndo_select_queue = mlx4_en_select_queue ,
2485- .ndo_get_stats = mlx4_en_get_stats ,
2490+ .ndo_get_stats64 = mlx4_en_get_stats64 ,
24862491 .ndo_set_rx_mode = mlx4_en_set_rx_mode ,
24872492 .ndo_set_mac_address = mlx4_en_set_mac ,
24882493 .ndo_validate_addr = eth_validate_addr ,
@@ -2514,7 +2519,7 @@ static const struct net_device_ops mlx4_netdev_ops_master = {
25142519 .ndo_stop = mlx4_en_close ,
25152520 .ndo_start_xmit = mlx4_en_xmit ,
25162521 .ndo_select_queue = mlx4_en_select_queue ,
2517- .ndo_get_stats = mlx4_en_get_stats ,
2522+ .ndo_get_stats64 = mlx4_en_get_stats64 ,
25182523 .ndo_set_rx_mode = mlx4_en_set_rx_mode ,
25192524 .ndo_set_mac_address = mlx4_en_set_mac ,
25202525 .ndo_validate_addr = eth_validate_addr ,
0 commit comments