From e3906486f616da7cc086a3ba06c0df4e5a48b4ab Mon Sep 17 00:00:00 2001 From: Kevin Groeneveld Date: Sat, 21 Jul 2012 06:30:50 +0000 Subject: net: fix race condition in several drivers when reading stats Fix race condition in several network drivers when reading stats on 32bit UP architectures. These drivers update their stats in a BH context and therefore should use u64_stats_fetch_begin_bh/u64_stats_fetch_retry_bh instead of u64_stats_fetch_begin/u64_stats_fetch_retry when reading the stats. Signed-off-by: Kevin Groeneveld Signed-off-by: David S. Miller --- drivers/net/dummy.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'drivers/net/dummy.c') diff --git a/drivers/net/dummy.c b/drivers/net/dummy.c index 9d6a0677466b..c260af5411d0 100644 --- a/drivers/net/dummy.c +++ b/drivers/net/dummy.c @@ -63,10 +63,10 @@ static struct rtnl_link_stats64 *dummy_get_stats64(struct net_device *dev, dstats = per_cpu_ptr(dev->dstats, i); do { - start = u64_stats_fetch_begin(&dstats->syncp); + start = u64_stats_fetch_begin_bh(&dstats->syncp); tbytes = dstats->tx_bytes; tpackets = dstats->tx_packets; - } while (u64_stats_fetch_retry(&dstats->syncp, start)); + } while (u64_stats_fetch_retry_bh(&dstats->syncp, start)); stats->tx_bytes += tbytes; stats->tx_packets += tpackets; } -- cgit v1.2.1