提交 c6a056a3 编写于 作者: E Eric Dumazet 提交者: David S. Miller

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: NEric Dumazet <eric.dumazet@gmail.com>
CC: Eilon Greenstein <eilong@broadcom.com>
CC: Dmitry Kravkov <dmitry@broadcom.com>
Acked-By: NEilon Greenstein <eilong@broadcom.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 c061b18d
...@@ -969,6 +969,7 @@ static void bnx2x_net_stats_update(struct bnx2x *bp) ...@@ -969,6 +969,7 @@ static void bnx2x_net_stats_update(struct bnx2x *bp)
{ {
struct bnx2x_eth_stats *estats = &bp->eth_stats; struct bnx2x_eth_stats *estats = &bp->eth_stats;
struct net_device_stats *nstats = &bp->dev->stats; struct net_device_stats *nstats = &bp->dev->stats;
unsigned long tmp;
int i; int i;
nstats->rx_packets = nstats->rx_packets =
...@@ -985,10 +986,10 @@ static void bnx2x_net_stats_update(struct bnx2x *bp) ...@@ -985,10 +986,10 @@ static void bnx2x_net_stats_update(struct bnx2x *bp)
nstats->tx_bytes = bnx2x_hilo(&estats->total_bytes_transmitted_hi); nstats->tx_bytes = bnx2x_hilo(&estats->total_bytes_transmitted_hi);
nstats->rx_dropped = estats->mac_discard; tmp = estats->mac_discard;
for_each_queue(bp, i) for_each_queue(bp, i)
nstats->rx_dropped += tmp += le32_to_cpu(bp->fp[i].old_tclient.checksum_discard);
le32_to_cpu(bp->fp[i].old_tclient.checksum_discard); nstats->rx_dropped = tmp;
nstats->tx_dropped = 0; nstats->tx_dropped = 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册