net/mlx4_en: fix tx_dropped bug
1) mlx4_en_xmit() can increment priv->stats.tx_dropped, but this variable is overwritten in mlx4_en_DUMP_ETH_STATS(). 2) This increment was not SMP safe, as a port might have many TX queues. Add a per TX ring tx_dropped to fix these issues. This is u32 as mlx4_en_DUMP_ETH_STATS() will add a 32bit field. So lets avoid bugs with SNMP agents having to cope with partial overwraps. (One of these agents being bond_fold_stats()) Signed-off-by:Eric Dumazet <edumazet@google.com> Reported-by:
Willem de Bruijn <willemb@google.com> Cc: Eugenia Emantayev <eugenia@mellanox.com> Acked-by:
Alexei Starovoitov <ast@kernel.org> Signed-off-by:
David S. Miller <davem@davemloft.net>
Showing
- drivers/net/ethernet/mellanox/mlx4/en_netdev.c 1 addition, 0 deletionsdrivers/net/ethernet/mellanox/mlx4/en_netdev.c
- drivers/net/ethernet/mellanox/mlx4/en_port.c 3 additions, 1 deletiondrivers/net/ethernet/mellanox/mlx4/en_port.c
- drivers/net/ethernet/mellanox/mlx4/en_tx.c 4 additions, 4 deletionsdrivers/net/ethernet/mellanox/mlx4/en_tx.c
- drivers/net/ethernet/mellanox/mlx4/mlx4_en.h 1 addition, 0 deletionsdrivers/net/ethernet/mellanox/mlx4/mlx4_en.h
Loading
Please register or sign in to comment