diff options
author | Eric Dumazet <eric.dumazet@gmail.com> | 2010-08-23 15:44:08 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-08-25 19:29:21 -0400 |
commit | c6a056a349d10a6e879ca1be6067873b6feed259 (patch) | |
tree | 4f8b344abda53bfe0722d4d9ea01bf5a85615e30 | |
parent | c061b18df0f1fe3f50fe451dbbdc9ede3c19701a (diff) |
bnx2x: small fix in stats handling
Use a private variable to fold rx_dropped value, instead of shared
destination buffer, as it might break SNMP applications.
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
CC: Eilon Greenstein <eilong@broadcom.com>
CC: Dmitry Kravkov <dmitry@broadcom.com>
Acked-By: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/bnx2x/bnx2x_stats.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/net/bnx2x/bnx2x_stats.c b/drivers/net/bnx2x/bnx2x_stats.c index c74724461020..efa1403ebf82 100644 --- a/drivers/net/bnx2x/bnx2x_stats.c +++ b/drivers/net/bnx2x/bnx2x_stats.c | |||
@@ -969,6 +969,7 @@ static void bnx2x_net_stats_update(struct bnx2x *bp) | |||
969 | { | 969 | { |
970 | struct bnx2x_eth_stats *estats = &bp->eth_stats; | 970 | struct bnx2x_eth_stats *estats = &bp->eth_stats; |
971 | struct net_device_stats *nstats = &bp->dev->stats; | 971 | struct net_device_stats *nstats = &bp->dev->stats; |
972 | unsigned long tmp; | ||
972 | int i; | 973 | int i; |
973 | 974 | ||
974 | nstats->rx_packets = | 975 | nstats->rx_packets = |
@@ -985,10 +986,10 @@ static void bnx2x_net_stats_update(struct bnx2x *bp) | |||
985 | 986 | ||
986 | nstats->tx_bytes = bnx2x_hilo(&estats->total_bytes_transmitted_hi); | 987 | nstats->tx_bytes = bnx2x_hilo(&estats->total_bytes_transmitted_hi); |
987 | 988 | ||
988 | nstats->rx_dropped = estats->mac_discard; | 989 | tmp = estats->mac_discard; |
989 | for_each_queue(bp, i) | 990 | for_each_queue(bp, i) |
990 | nstats->rx_dropped += | 991 | tmp += le32_to_cpu(bp->fp[i].old_tclient.checksum_discard); |
991 | le32_to_cpu(bp->fp[i].old_tclient.checksum_discard); | 992 | nstats->rx_dropped = tmp; |
992 | 993 | ||
993 | nstats->tx_dropped = 0; | 994 | nstats->tx_dropped = 0; |
994 | 995 | ||