aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorEric W. Biederman <ebiederm@xmission.com>2014-03-14 00:26:42 -0400
committerDavid S. Miller <davem@davemloft.net>2014-03-14 22:41:36 -0400
commit57a7744e09867ebcfa0ccf1d6d529caa7728d552 (patch)
tree6407fee7138787a24bf9251abfeeae69a239028a /drivers
parent85dcce7a73f1cc59f7a96fe52713b1630f4ca272 (diff)
net: Replace u64_stats_fetch_begin_bh to u64_stats_fetch_begin_irq
Replace the bh safe variant with the hard irq safe variant. We need a hard irq safe variant to deal with netpoll transmitting packets from hard irq context, and we need it in most if not all of the places using the bh safe variant. Except on 32bit uni-processor the code is exactly the same so don't bother with a bh variant, just have a hard irq safe variant that everyone can use. Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/dummy.c4
-rw-r--r--drivers/net/ethernet/broadcom/b44.c8
-rw-r--r--drivers/net/ethernet/emulex/benet/be_ethtool.c12
-rw-r--r--drivers/net/ethernet/emulex/benet/be_main.c16
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_ethtool.c8
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_main.c16
-rw-r--r--drivers/net/ethernet/intel/igb/igb_ethtool.c12
-rw-r--r--drivers/net/ethernet/intel/igb/igb_main.c8
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c8
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_main.c8
-rw-r--r--drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c8
-rw-r--r--drivers/net/ethernet/marvell/mvneta.c4
-rw-r--r--drivers/net/ethernet/marvell/sky2.c8
-rw-r--r--drivers/net/ethernet/neterion/vxge/vxge-main.c8
-rw-r--r--drivers/net/ethernet/nvidia/forcedeth.c8
-rw-r--r--drivers/net/ethernet/realtek/8139too.c8
-rw-r--r--drivers/net/ethernet/realtek/r8169.c8
-rw-r--r--drivers/net/ethernet/tile/tilepro.c4
-rw-r--r--drivers/net/ethernet/via/via-rhine.c8
-rw-r--r--drivers/net/ifb.c8
-rw-r--r--drivers/net/loopback.c4
-rw-r--r--drivers/net/macvlan.c4
-rw-r--r--drivers/net/nlmon.c4
-rw-r--r--drivers/net/team/team.c4
-rw-r--r--drivers/net/team/team_mode_loadbalance.c4
-rw-r--r--drivers/net/veth.c4
-rw-r--r--drivers/net/virtio_net.c8
-rw-r--r--drivers/net/xen-netfront.c4
28 files changed, 104 insertions, 104 deletions
diff --git a/drivers/net/dummy.c b/drivers/net/dummy.c
index 1656317c96f8..0932ffbf381b 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,
63 63
64 dstats = per_cpu_ptr(dev->dstats, i); 64 dstats = per_cpu_ptr(dev->dstats, i);
65 do { 65 do {
66 start = u64_stats_fetch_begin_bh(&dstats->syncp); 66 start = u64_stats_fetch_begin_irq(&dstats->syncp);
67 tbytes = dstats->tx_bytes; 67 tbytes = dstats->tx_bytes;
68 tpackets = dstats->tx_packets; 68 tpackets = dstats->tx_packets;
69 } while (u64_stats_fetch_retry_bh(&dstats->syncp, start)); 69 } while (u64_stats_fetch_retry_irq(&dstats->syncp, start));
70 stats->tx_bytes += tbytes; 70 stats->tx_bytes += tbytes;
71 stats->tx_packets += tpackets; 71 stats->tx_packets += tpackets;
72 } 72 }
diff --git a/drivers/net/ethernet/broadcom/b44.c b/drivers/net/ethernet/broadcom/b44.c
index 8a7bf7dad898..05ba62589017 100644
--- a/drivers/net/ethernet/broadcom/b44.c
+++ b/drivers/net/ethernet/broadcom/b44.c
@@ -1685,7 +1685,7 @@ static struct rtnl_link_stats64 *b44_get_stats64(struct net_device *dev,
1685 unsigned int start; 1685 unsigned int start;
1686 1686
1687 do { 1687 do {
1688 start = u64_stats_fetch_begin_bh(&hwstat->syncp); 1688 start = u64_stats_fetch_begin_irq(&hwstat->syncp);
1689 1689
1690 /* Convert HW stats into rtnl_link_stats64 stats. */ 1690 /* Convert HW stats into rtnl_link_stats64 stats. */
1691 nstat->rx_packets = hwstat->rx_pkts; 1691 nstat->rx_packets = hwstat->rx_pkts;
@@ -1719,7 +1719,7 @@ static struct rtnl_link_stats64 *b44_get_stats64(struct net_device *dev,
1719 /* Carrier lost counter seems to be broken for some devices */ 1719 /* Carrier lost counter seems to be broken for some devices */
1720 nstat->tx_carrier_errors = hwstat->tx_carrier_lost; 1720 nstat->tx_carrier_errors = hwstat->tx_carrier_lost;
1721#endif 1721#endif
1722 } while (u64_stats_fetch_retry_bh(&hwstat->syncp, start)); 1722 } while (u64_stats_fetch_retry_irq(&hwstat->syncp, start));
1723 1723
1724 return nstat; 1724 return nstat;
1725} 1725}
@@ -2073,12 +2073,12 @@ static void b44_get_ethtool_stats(struct net_device *dev,
2073 do { 2073 do {
2074 data_src = &hwstat->tx_good_octets; 2074 data_src = &hwstat->tx_good_octets;
2075 data_dst = data; 2075 data_dst = data;
2076 start = u64_stats_fetch_begin_bh(&hwstat->syncp); 2076 start = u64_stats_fetch_begin_irq(&hwstat->syncp);
2077 2077
2078 for (i = 0; i < ARRAY_SIZE(b44_gstrings); i++) 2078 for (i = 0; i < ARRAY_SIZE(b44_gstrings); i++)
2079 *data_dst++ = *data_src++; 2079 *data_dst++ = *data_src++;
2080 2080
2081 } while (u64_stats_fetch_retry_bh(&hwstat->syncp, start)); 2081 } while (u64_stats_fetch_retry_irq(&hwstat->syncp, start));
2082} 2082}
2083 2083
2084static void b44_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol) 2084static void b44_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
diff --git a/drivers/net/ethernet/emulex/benet/be_ethtool.c b/drivers/net/ethernet/emulex/benet/be_ethtool.c
index 66759b6ce373..15ba96cba65d 100644
--- a/drivers/net/ethernet/emulex/benet/be_ethtool.c
+++ b/drivers/net/ethernet/emulex/benet/be_ethtool.c
@@ -357,10 +357,10 @@ be_get_ethtool_stats(struct net_device *netdev,
357 struct be_rx_stats *stats = rx_stats(rxo); 357 struct be_rx_stats *stats = rx_stats(rxo);
358 358
359 do { 359 do {
360 start = u64_stats_fetch_begin_bh(&stats->sync); 360 start = u64_stats_fetch_begin_irq(&stats->sync);
361 data[base] = stats->rx_bytes; 361 data[base] = stats->rx_bytes;
362 data[base + 1] = stats->rx_pkts; 362 data[base + 1] = stats->rx_pkts;
363 } while (u64_stats_fetch_retry_bh(&stats->sync, start)); 363 } while (u64_stats_fetch_retry_irq(&stats->sync, start));
364 364
365 for (i = 2; i < ETHTOOL_RXSTATS_NUM; i++) { 365 for (i = 2; i < ETHTOOL_RXSTATS_NUM; i++) {
366 p = (u8 *)stats + et_rx_stats[i].offset; 366 p = (u8 *)stats + et_rx_stats[i].offset;
@@ -373,19 +373,19 @@ be_get_ethtool_stats(struct net_device *netdev,
373 struct be_tx_stats *stats = tx_stats(txo); 373 struct be_tx_stats *stats = tx_stats(txo);
374 374
375 do { 375 do {
376 start = u64_stats_fetch_begin_bh(&stats->sync_compl); 376 start = u64_stats_fetch_begin_irq(&stats->sync_compl);
377 data[base] = stats->tx_compl; 377 data[base] = stats->tx_compl;
378 } while (u64_stats_fetch_retry_bh(&stats->sync_compl, start)); 378 } while (u64_stats_fetch_retry_irq(&stats->sync_compl, start));
379 379
380 do { 380 do {
381 start = u64_stats_fetch_begin_bh(&stats->sync); 381 start = u64_stats_fetch_begin_irq(&stats->sync);
382 for (i = 1; i < ETHTOOL_TXSTATS_NUM; i++) { 382 for (i = 1; i < ETHTOOL_TXSTATS_NUM; i++) {
383 p = (u8 *)stats + et_tx_stats[i].offset; 383 p = (u8 *)stats + et_tx_stats[i].offset;
384 data[base + i] = 384 data[base + i] =
385 (et_tx_stats[i].size == sizeof(u64)) ? 385 (et_tx_stats[i].size == sizeof(u64)) ?
386 *(u64 *)p : *(u32 *)p; 386 *(u64 *)p : *(u32 *)p;
387 } 387 }
388 } while (u64_stats_fetch_retry_bh(&stats->sync, start)); 388 } while (u64_stats_fetch_retry_irq(&stats->sync, start));
389 base += ETHTOOL_TXSTATS_NUM; 389 base += ETHTOOL_TXSTATS_NUM;
390 } 390 }
391} 391}
diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
index 239273b7b881..a61f967f9ca1 100644
--- a/drivers/net/ethernet/emulex/benet/be_main.c
+++ b/drivers/net/ethernet/emulex/benet/be_main.c
@@ -591,10 +591,10 @@ static struct rtnl_link_stats64 *be_get_stats64(struct net_device *netdev,
591 for_all_rx_queues(adapter, rxo, i) { 591 for_all_rx_queues(adapter, rxo, i) {
592 const struct be_rx_stats *rx_stats = rx_stats(rxo); 592 const struct be_rx_stats *rx_stats = rx_stats(rxo);
593 do { 593 do {
594 start = u64_stats_fetch_begin_bh(&rx_stats->sync); 594 start = u64_stats_fetch_begin_irq(&rx_stats->sync);
595 pkts = rx_stats(rxo)->rx_pkts; 595 pkts = rx_stats(rxo)->rx_pkts;
596 bytes = rx_stats(rxo)->rx_bytes; 596 bytes = rx_stats(rxo)->rx_bytes;
597 } while (u64_stats_fetch_retry_bh(&rx_stats->sync, start)); 597 } while (u64_stats_fetch_retry_irq(&rx_stats->sync, start));
598 stats->rx_packets += pkts; 598 stats->rx_packets += pkts;
599 stats->rx_bytes += bytes; 599 stats->rx_bytes += bytes;
600 stats->multicast += rx_stats(rxo)->rx_mcast_pkts; 600 stats->multicast += rx_stats(rxo)->rx_mcast_pkts;
@@ -605,10 +605,10 @@ static struct rtnl_link_stats64 *be_get_stats64(struct net_device *netdev,
605 for_all_tx_queues(adapter, txo, i) { 605 for_all_tx_queues(adapter, txo, i) {
606 const struct be_tx_stats *tx_stats = tx_stats(txo); 606 const struct be_tx_stats *tx_stats = tx_stats(txo);
607 do { 607 do {
608 start = u64_stats_fetch_begin_bh(&tx_stats->sync); 608 start = u64_stats_fetch_begin_irq(&tx_stats->sync);
609 pkts = tx_stats(txo)->tx_pkts; 609 pkts = tx_stats(txo)->tx_pkts;
610 bytes = tx_stats(txo)->tx_bytes; 610 bytes = tx_stats(txo)->tx_bytes;
611 } while (u64_stats_fetch_retry_bh(&tx_stats->sync, start)); 611 } while (u64_stats_fetch_retry_irq(&tx_stats->sync, start));
612 stats->tx_packets += pkts; 612 stats->tx_packets += pkts;
613 stats->tx_bytes += bytes; 613 stats->tx_bytes += bytes;
614 } 614 }
@@ -1408,15 +1408,15 @@ static void be_eqd_update(struct be_adapter *adapter)
1408 1408
1409 rxo = &adapter->rx_obj[eqo->idx]; 1409 rxo = &adapter->rx_obj[eqo->idx];
1410 do { 1410 do {
1411 start = u64_stats_fetch_begin_bh(&rxo->stats.sync); 1411 start = u64_stats_fetch_begin_irq(&rxo->stats.sync);
1412 rx_pkts = rxo->stats.rx_pkts; 1412 rx_pkts = rxo->stats.rx_pkts;
1413 } while (u64_stats_fetch_retry_bh(&rxo->stats.sync, start)); 1413 } while (u64_stats_fetch_retry_irq(&rxo->stats.sync, start));
1414 1414
1415 txo = &adapter->tx_obj[eqo->idx]; 1415 txo = &adapter->tx_obj[eqo->idx];
1416 do { 1416 do {
1417 start = u64_stats_fetch_begin_bh(&txo->stats.sync); 1417 start = u64_stats_fetch_begin_irq(&txo->stats.sync);
1418 tx_pkts = txo->stats.tx_reqs; 1418 tx_pkts = txo->stats.tx_reqs;
1419 } while (u64_stats_fetch_retry_bh(&txo->stats.sync, start)); 1419 } while (u64_stats_fetch_retry_irq(&txo->stats.sync, start));
1420 1420
1421 1421
1422 /* Skip, if wrapped around or first calculation */ 1422 /* Skip, if wrapped around or first calculation */
diff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
index 8ee224fdc1d1..6049e63a826d 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c
@@ -653,18 +653,18 @@ static void i40e_get_ethtool_stats(struct net_device *netdev,
653 653
654 /* process Tx ring statistics */ 654 /* process Tx ring statistics */
655 do { 655 do {
656 start = u64_stats_fetch_begin_bh(&tx_ring->syncp); 656 start = u64_stats_fetch_begin_irq(&tx_ring->syncp);
657 data[i] = tx_ring->stats.packets; 657 data[i] = tx_ring->stats.packets;
658 data[i + 1] = tx_ring->stats.bytes; 658 data[i + 1] = tx_ring->stats.bytes;
659 } while (u64_stats_fetch_retry_bh(&tx_ring->syncp, start)); 659 } while (u64_stats_fetch_retry_irq(&tx_ring->syncp, start));
660 660
661 /* Rx ring is the 2nd half of the queue pair */ 661 /* Rx ring is the 2nd half of the queue pair */
662 rx_ring = &tx_ring[1]; 662 rx_ring = &tx_ring[1];
663 do { 663 do {
664 start = u64_stats_fetch_begin_bh(&rx_ring->syncp); 664 start = u64_stats_fetch_begin_irq(&rx_ring->syncp);
665 data[i + 2] = rx_ring->stats.packets; 665 data[i + 2] = rx_ring->stats.packets;
666 data[i + 3] = rx_ring->stats.bytes; 666 data[i + 3] = rx_ring->stats.bytes;
667 } while (u64_stats_fetch_retry_bh(&rx_ring->syncp, start)); 667 } while (u64_stats_fetch_retry_irq(&rx_ring->syncp, start));
668 } 668 }
669 rcu_read_unlock(); 669 rcu_read_unlock();
670 if (vsi == pf->vsi[pf->lan_vsi]) { 670 if (vsi == pf->vsi[pf->lan_vsi]) {
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
index 7379e5a9126b..c66a11e31e6f 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
@@ -376,20 +376,20 @@ static struct rtnl_link_stats64 *i40e_get_netdev_stats_struct(
376 continue; 376 continue;
377 377
378 do { 378 do {
379 start = u64_stats_fetch_begin_bh(&tx_ring->syncp); 379 start = u64_stats_fetch_begin_irq(&tx_ring->syncp);
380 packets = tx_ring->stats.packets; 380 packets = tx_ring->stats.packets;
381 bytes = tx_ring->stats.bytes; 381 bytes = tx_ring->stats.bytes;
382 } while (u64_stats_fetch_retry_bh(&tx_ring->syncp, start)); 382 } while (u64_stats_fetch_retry_irq(&tx_ring->syncp, start));
383 383
384 stats->tx_packets += packets; 384 stats->tx_packets += packets;
385 stats->tx_bytes += bytes; 385 stats->tx_bytes += bytes;
386 rx_ring = &tx_ring[1]; 386 rx_ring = &tx_ring[1];
387 387
388 do { 388 do {
389 start = u64_stats_fetch_begin_bh(&rx_ring->syncp); 389 start = u64_stats_fetch_begin_irq(&rx_ring->syncp);
390 packets = rx_ring->stats.packets; 390 packets = rx_ring->stats.packets;
391 bytes = rx_ring->stats.bytes; 391 bytes = rx_ring->stats.bytes;
392 } while (u64_stats_fetch_retry_bh(&rx_ring->syncp, start)); 392 } while (u64_stats_fetch_retry_irq(&rx_ring->syncp, start));
393 393
394 stats->rx_packets += packets; 394 stats->rx_packets += packets;
395 stats->rx_bytes += bytes; 395 stats->rx_bytes += bytes;
@@ -770,10 +770,10 @@ void i40e_update_stats(struct i40e_vsi *vsi)
770 p = ACCESS_ONCE(vsi->tx_rings[q]); 770 p = ACCESS_ONCE(vsi->tx_rings[q]);
771 771
772 do { 772 do {
773 start = u64_stats_fetch_begin_bh(&p->syncp); 773 start = u64_stats_fetch_begin_irq(&p->syncp);
774 packets = p->stats.packets; 774 packets = p->stats.packets;
775 bytes = p->stats.bytes; 775 bytes = p->stats.bytes;
776 } while (u64_stats_fetch_retry_bh(&p->syncp, start)); 776 } while (u64_stats_fetch_retry_irq(&p->syncp, start));
777 tx_b += bytes; 777 tx_b += bytes;
778 tx_p += packets; 778 tx_p += packets;
779 tx_restart += p->tx_stats.restart_queue; 779 tx_restart += p->tx_stats.restart_queue;
@@ -782,10 +782,10 @@ void i40e_update_stats(struct i40e_vsi *vsi)
782 /* Rx queue is part of the same block as Tx queue */ 782 /* Rx queue is part of the same block as Tx queue */
783 p = &p[1]; 783 p = &p[1];
784 do { 784 do {
785 start = u64_stats_fetch_begin_bh(&p->syncp); 785 start = u64_stats_fetch_begin_irq(&p->syncp);
786 packets = p->stats.packets; 786 packets = p->stats.packets;
787 bytes = p->stats.bytes; 787 bytes = p->stats.bytes;
788 } while (u64_stats_fetch_retry_bh(&p->syncp, start)); 788 } while (u64_stats_fetch_retry_irq(&p->syncp, start));
789 rx_b += bytes; 789 rx_b += bytes;
790 rx_p += packets; 790 rx_p += packets;
791 rx_buf += p->rx_stats.alloc_buff_failed; 791 rx_buf += p->rx_stats.alloc_buff_failed;
diff --git a/drivers/net/ethernet/intel/igb/igb_ethtool.c b/drivers/net/ethernet/intel/igb/igb_ethtool.c
index 170e4dbddc11..e35bc1faa452 100644
--- a/drivers/net/ethernet/intel/igb/igb_ethtool.c
+++ b/drivers/net/ethernet/intel/igb/igb_ethtool.c
@@ -2273,15 +2273,15 @@ static void igb_get_ethtool_stats(struct net_device *netdev,
2273 2273
2274 ring = adapter->tx_ring[j]; 2274 ring = adapter->tx_ring[j];
2275 do { 2275 do {
2276 start = u64_stats_fetch_begin_bh(&ring->tx_syncp); 2276 start = u64_stats_fetch_begin_irq(&ring->tx_syncp);
2277 data[i] = ring->tx_stats.packets; 2277 data[i] = ring->tx_stats.packets;
2278 data[i+1] = ring->tx_stats.bytes; 2278 data[i+1] = ring->tx_stats.bytes;
2279 data[i+2] = ring->tx_stats.restart_queue; 2279 data[i+2] = ring->tx_stats.restart_queue;
2280 } while (u64_stats_fetch_retry_bh(&ring->tx_syncp, start)); 2280 } while (u64_stats_fetch_retry_irq(&ring->tx_syncp, start));
2281 do { 2281 do {
2282 start = u64_stats_fetch_begin_bh(&ring->tx_syncp2); 2282 start = u64_stats_fetch_begin_irq(&ring->tx_syncp2);
2283 restart2 = ring->tx_stats.restart_queue2; 2283 restart2 = ring->tx_stats.restart_queue2;
2284 } while (u64_stats_fetch_retry_bh(&ring->tx_syncp2, start)); 2284 } while (u64_stats_fetch_retry_irq(&ring->tx_syncp2, start));
2285 data[i+2] += restart2; 2285 data[i+2] += restart2;
2286 2286
2287 i += IGB_TX_QUEUE_STATS_LEN; 2287 i += IGB_TX_QUEUE_STATS_LEN;
@@ -2289,13 +2289,13 @@ static void igb_get_ethtool_stats(struct net_device *netdev,
2289 for (j = 0; j < adapter->num_rx_queues; j++) { 2289 for (j = 0; j < adapter->num_rx_queues; j++) {
2290 ring = adapter->rx_ring[j]; 2290 ring = adapter->rx_ring[j];
2291 do { 2291 do {
2292 start = u64_stats_fetch_begin_bh(&ring->rx_syncp); 2292 start = u64_stats_fetch_begin_irq(&ring->rx_syncp);
2293 data[i] = ring->rx_stats.packets; 2293 data[i] = ring->rx_stats.packets;
2294 data[i+1] = ring->rx_stats.bytes; 2294 data[i+1] = ring->rx_stats.bytes;
2295 data[i+2] = ring->rx_stats.drops; 2295 data[i+2] = ring->rx_stats.drops;
2296 data[i+3] = ring->rx_stats.csum_err; 2296 data[i+3] = ring->rx_stats.csum_err;
2297 data[i+4] = ring->rx_stats.alloc_failed; 2297 data[i+4] = ring->rx_stats.alloc_failed;
2298 } while (u64_stats_fetch_retry_bh(&ring->rx_syncp, start)); 2298 } while (u64_stats_fetch_retry_irq(&ring->rx_syncp, start));
2299 i += IGB_RX_QUEUE_STATS_LEN; 2299 i += IGB_RX_QUEUE_STATS_LEN;
2300 } 2300 }
2301 spin_unlock(&adapter->stats64_lock); 2301 spin_unlock(&adapter->stats64_lock);
diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index ea8b9c41cf9f..f81d87cfcc8d 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -5168,10 +5168,10 @@ void igb_update_stats(struct igb_adapter *adapter,
5168 } 5168 }
5169 5169
5170 do { 5170 do {
5171 start = u64_stats_fetch_begin_bh(&ring->rx_syncp); 5171 start = u64_stats_fetch_begin_irq(&ring->rx_syncp);
5172 _bytes = ring->rx_stats.bytes; 5172 _bytes = ring->rx_stats.bytes;
5173 _packets = ring->rx_stats.packets; 5173 _packets = ring->rx_stats.packets;
5174 } while (u64_stats_fetch_retry_bh(&ring->rx_syncp, start)); 5174 } while (u64_stats_fetch_retry_irq(&ring->rx_syncp, start));
5175 bytes += _bytes; 5175 bytes += _bytes;
5176 packets += _packets; 5176 packets += _packets;
5177 } 5177 }
@@ -5184,10 +5184,10 @@ void igb_update_stats(struct igb_adapter *adapter,
5184 for (i = 0; i < adapter->num_tx_queues; i++) { 5184 for (i = 0; i < adapter->num_tx_queues; i++) {
5185 struct igb_ring *ring = adapter->tx_ring[i]; 5185 struct igb_ring *ring = adapter->tx_ring[i];
5186 do { 5186 do {
5187 start = u64_stats_fetch_begin_bh(&ring->tx_syncp); 5187 start = u64_stats_fetch_begin_irq(&ring->tx_syncp);
5188 _bytes = ring->tx_stats.bytes; 5188 _bytes = ring->tx_stats.bytes;
5189 _packets = ring->tx_stats.packets; 5189 _packets = ring->tx_stats.packets;
5190 } while (u64_stats_fetch_retry_bh(&ring->tx_syncp, start)); 5190 } while (u64_stats_fetch_retry_irq(&ring->tx_syncp, start));
5191 bytes += _bytes; 5191 bytes += _bytes;
5192 packets += _packets; 5192 packets += _packets;
5193 } 5193 }
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
index 24dd6f0233f3..6c55c14d082a 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c
@@ -1128,10 +1128,10 @@ static void ixgbe_get_ethtool_stats(struct net_device *netdev,
1128 } 1128 }
1129 1129
1130 do { 1130 do {
1131 start = u64_stats_fetch_begin_bh(&ring->syncp); 1131 start = u64_stats_fetch_begin_irq(&ring->syncp);
1132 data[i] = ring->stats.packets; 1132 data[i] = ring->stats.packets;
1133 data[i+1] = ring->stats.bytes; 1133 data[i+1] = ring->stats.bytes;
1134 } while (u64_stats_fetch_retry_bh(&ring->syncp, start)); 1134 } while (u64_stats_fetch_retry_irq(&ring->syncp, start));
1135 i += 2; 1135 i += 2;
1136#ifdef BP_EXTENDED_STATS 1136#ifdef BP_EXTENDED_STATS
1137 data[i] = ring->stats.yields; 1137 data[i] = ring->stats.yields;
@@ -1156,10 +1156,10 @@ static void ixgbe_get_ethtool_stats(struct net_device *netdev,
1156 } 1156 }
1157 1157
1158 do { 1158 do {
1159 start = u64_stats_fetch_begin_bh(&ring->syncp); 1159 start = u64_stats_fetch_begin_irq(&ring->syncp);
1160 data[i] = ring->stats.packets; 1160 data[i] = ring->stats.packets;
1161 data[i+1] = ring->stats.bytes; 1161 data[i+1] = ring->stats.bytes;
1162 } while (u64_stats_fetch_retry_bh(&ring->syncp, start)); 1162 } while (u64_stats_fetch_retry_irq(&ring->syncp, start));
1163 i += 2; 1163 i += 2;
1164#ifdef BP_EXTENDED_STATS 1164#ifdef BP_EXTENDED_STATS
1165 data[i] = ring->stats.yields; 1165 data[i] = ring->stats.yields;
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index 851c41377b47..5d314fe873bb 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -7293,10 +7293,10 @@ static struct rtnl_link_stats64 *ixgbe_get_stats64(struct net_device *netdev,
7293 7293
7294 if (ring) { 7294 if (ring) {
7295 do { 7295 do {
7296 start = u64_stats_fetch_begin_bh(&ring->syncp); 7296 start = u64_stats_fetch_begin_irq(&ring->syncp);
7297 packets = ring->stats.packets; 7297 packets = ring->stats.packets;
7298 bytes = ring->stats.bytes; 7298 bytes = ring->stats.bytes;
7299 } while (u64_stats_fetch_retry_bh(&ring->syncp, start)); 7299 } while (u64_stats_fetch_retry_irq(&ring->syncp, start));
7300 stats->rx_packets += packets; 7300 stats->rx_packets += packets;
7301 stats->rx_bytes += bytes; 7301 stats->rx_bytes += bytes;
7302 } 7302 }
@@ -7309,10 +7309,10 @@ static struct rtnl_link_stats64 *ixgbe_get_stats64(struct net_device *netdev,
7309 7309
7310 if (ring) { 7310 if (ring) {
7311 do { 7311 do {
7312 start = u64_stats_fetch_begin_bh(&ring->syncp); 7312 start = u64_stats_fetch_begin_irq(&ring->syncp);
7313 packets = ring->stats.packets; 7313 packets = ring->stats.packets;
7314 bytes = ring->stats.bytes; 7314 bytes = ring->stats.bytes;
7315 } while (u64_stats_fetch_retry_bh(&ring->syncp, start)); 7315 } while (u64_stats_fetch_retry_irq(&ring->syncp, start));
7316 stats->tx_packets += packets; 7316 stats->tx_packets += packets;
7317 stats->tx_bytes += bytes; 7317 stats->tx_bytes += bytes;
7318 } 7318 }
diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
index 475341d0ce7e..8581079791fe 100644
--- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
+++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
@@ -3337,10 +3337,10 @@ static struct rtnl_link_stats64 *ixgbevf_get_stats(struct net_device *netdev,
3337 for (i = 0; i < adapter->num_rx_queues; i++) { 3337 for (i = 0; i < adapter->num_rx_queues; i++) {
3338 ring = adapter->rx_ring[i]; 3338 ring = adapter->rx_ring[i];
3339 do { 3339 do {
3340 start = u64_stats_fetch_begin_bh(&ring->syncp); 3340 start = u64_stats_fetch_begin_irq(&ring->syncp);
3341 bytes = ring->stats.bytes; 3341 bytes = ring->stats.bytes;
3342 packets = ring->stats.packets; 3342 packets = ring->stats.packets;
3343 } while (u64_stats_fetch_retry_bh(&ring->syncp, start)); 3343 } while (u64_stats_fetch_retry_irq(&ring->syncp, start));
3344 stats->rx_bytes += bytes; 3344 stats->rx_bytes += bytes;
3345 stats->rx_packets += packets; 3345 stats->rx_packets += packets;
3346 } 3346 }
@@ -3348,10 +3348,10 @@ static struct rtnl_link_stats64 *ixgbevf_get_stats(struct net_device *netdev,
3348 for (i = 0; i < adapter->num_tx_queues; i++) { 3348 for (i = 0; i < adapter->num_tx_queues; i++) {
3349 ring = adapter->tx_ring[i]; 3349 ring = adapter->tx_ring[i];
3350 do { 3350 do {
3351 start = u64_stats_fetch_begin_bh(&ring->syncp); 3351 start = u64_stats_fetch_begin_irq(&ring->syncp);
3352 bytes = ring->stats.bytes; 3352 bytes = ring->stats.bytes;
3353 packets = ring->stats.packets; 3353 packets = ring->stats.packets;
3354 } while (u64_stats_fetch_retry_bh(&ring->syncp, start)); 3354 } while (u64_stats_fetch_retry_irq(&ring->syncp, start));
3355 stats->tx_bytes += bytes; 3355 stats->tx_bytes += bytes;
3356 stats->tx_packets += packets; 3356 stats->tx_packets += packets;
3357 } 3357 }
diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c
index 12c6a66e54d1..f3afcbdbb725 100644
--- a/drivers/net/ethernet/marvell/mvneta.c
+++ b/drivers/net/ethernet/marvell/mvneta.c
@@ -508,12 +508,12 @@ struct rtnl_link_stats64 *mvneta_get_stats64(struct net_device *dev,
508 508
509 cpu_stats = per_cpu_ptr(pp->stats, cpu); 509 cpu_stats = per_cpu_ptr(pp->stats, cpu);
510 do { 510 do {
511 start = u64_stats_fetch_begin_bh(&cpu_stats->syncp); 511 start = u64_stats_fetch_begin_irq(&cpu_stats->syncp);
512 rx_packets = cpu_stats->rx_packets; 512 rx_packets = cpu_stats->rx_packets;
513 rx_bytes = cpu_stats->rx_bytes; 513 rx_bytes = cpu_stats->rx_bytes;
514 tx_packets = cpu_stats->tx_packets; 514 tx_packets = cpu_stats->tx_packets;
515 tx_bytes = cpu_stats->tx_bytes; 515 tx_bytes = cpu_stats->tx_bytes;
516 } while (u64_stats_fetch_retry_bh(&cpu_stats->syncp, start)); 516 } while (u64_stats_fetch_retry_irq(&cpu_stats->syncp, start));
517 517
518 stats->rx_packets += rx_packets; 518 stats->rx_packets += rx_packets;
519 stats->rx_bytes += rx_bytes; 519 stats->rx_bytes += rx_bytes;
diff --git a/drivers/net/ethernet/marvell/sky2.c b/drivers/net/ethernet/marvell/sky2.c
index 2434611d1b4e..5a5b23741179 100644
--- a/drivers/net/ethernet/marvell/sky2.c
+++ b/drivers/net/ethernet/marvell/sky2.c
@@ -3908,19 +3908,19 @@ static struct rtnl_link_stats64 *sky2_get_stats(struct net_device *dev,
3908 u64 _bytes, _packets; 3908 u64 _bytes, _packets;
3909 3909
3910 do { 3910 do {
3911 start = u64_stats_fetch_begin_bh(&sky2->rx_stats.syncp); 3911 start = u64_stats_fetch_begin_irq(&sky2->rx_stats.syncp);
3912 _bytes = sky2->rx_stats.bytes; 3912 _bytes = sky2->rx_stats.bytes;
3913 _packets = sky2->rx_stats.packets; 3913 _packets = sky2->rx_stats.packets;
3914 } while (u64_stats_fetch_retry_bh(&sky2->rx_stats.syncp, start)); 3914 } while (u64_stats_fetch_retry_irq(&sky2->rx_stats.syncp, start));
3915 3915
3916 stats->rx_packets = _packets; 3916 stats->rx_packets = _packets;
3917 stats->rx_bytes = _bytes; 3917 stats->rx_bytes = _bytes;
3918 3918
3919 do { 3919 do {
3920 start = u64_stats_fetch_begin_bh(&sky2->tx_stats.syncp); 3920 start = u64_stats_fetch_begin_irq(&sky2->tx_stats.syncp);
3921 _bytes = sky2->tx_stats.bytes; 3921 _bytes = sky2->tx_stats.bytes;
3922 _packets = sky2->tx_stats.packets; 3922 _packets = sky2->tx_stats.packets;
3923 } while (u64_stats_fetch_retry_bh(&sky2->tx_stats.syncp, start)); 3923 } while (u64_stats_fetch_retry_irq(&sky2->tx_stats.syncp, start));
3924 3924
3925 stats->tx_packets = _packets; 3925 stats->tx_packets = _packets;
3926 stats->tx_bytes = _bytes; 3926 stats->tx_bytes = _bytes;
diff --git a/drivers/net/ethernet/neterion/vxge/vxge-main.c b/drivers/net/ethernet/neterion/vxge/vxge-main.c
index c83cedd26dec..c5bb1ace4a74 100644
--- a/drivers/net/ethernet/neterion/vxge/vxge-main.c
+++ b/drivers/net/ethernet/neterion/vxge/vxge-main.c
@@ -3134,12 +3134,12 @@ vxge_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *net_stats)
3134 u64 packets, bytes, multicast; 3134 u64 packets, bytes, multicast;
3135 3135
3136 do { 3136 do {
3137 start = u64_stats_fetch_begin_bh(&rxstats->syncp); 3137 start = u64_stats_fetch_begin_irq(&rxstats->syncp);
3138 3138
3139 packets = rxstats->rx_frms; 3139 packets = rxstats->rx_frms;
3140 multicast = rxstats->rx_mcast; 3140 multicast = rxstats->rx_mcast;
3141 bytes = rxstats->rx_bytes; 3141 bytes = rxstats->rx_bytes;
3142 } while (u64_stats_fetch_retry_bh(&rxstats->syncp, start)); 3142 } while (u64_stats_fetch_retry_irq(&rxstats->syncp, start));
3143 3143
3144 net_stats->rx_packets += packets; 3144 net_stats->rx_packets += packets;
3145 net_stats->rx_bytes += bytes; 3145 net_stats->rx_bytes += bytes;
@@ -3149,11 +3149,11 @@ vxge_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *net_stats)
3149 net_stats->rx_dropped += rxstats->rx_dropped; 3149 net_stats->rx_dropped += rxstats->rx_dropped;
3150 3150
3151 do { 3151 do {
3152 start = u64_stats_fetch_begin_bh(&txstats->syncp); 3152 start = u64_stats_fetch_begin_irq(&txstats->syncp);
3153 3153
3154 packets = txstats->tx_frms; 3154 packets = txstats->tx_frms;
3155 bytes = txstats->tx_bytes; 3155 bytes = txstats->tx_bytes;
3156 } while (u64_stats_fetch_retry_bh(&txstats->syncp, start)); 3156 } while (u64_stats_fetch_retry_irq(&txstats->syncp, start));
3157 3157
3158 net_stats->tx_packets += packets; 3158 net_stats->tx_packets += packets;
3159 net_stats->tx_bytes += bytes; 3159 net_stats->tx_bytes += bytes;
diff --git a/drivers/net/ethernet/nvidia/forcedeth.c b/drivers/net/ethernet/nvidia/forcedeth.c
index bad3c057ee8a..811be0bccd14 100644
--- a/drivers/net/ethernet/nvidia/forcedeth.c
+++ b/drivers/net/ethernet/nvidia/forcedeth.c
@@ -1753,19 +1753,19 @@ nv_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *storage)
1753 1753
1754 /* software stats */ 1754 /* software stats */
1755 do { 1755 do {
1756 syncp_start = u64_stats_fetch_begin_bh(&np->swstats_rx_syncp); 1756 syncp_start = u64_stats_fetch_begin_irq(&np->swstats_rx_syncp);
1757 storage->rx_packets = np->stat_rx_packets; 1757 storage->rx_packets = np->stat_rx_packets;
1758 storage->rx_bytes = np->stat_rx_bytes; 1758 storage->rx_bytes = np->stat_rx_bytes;
1759 storage->rx_dropped = np->stat_rx_dropped; 1759 storage->rx_dropped = np->stat_rx_dropped;
1760 storage->rx_missed_errors = np->stat_rx_missed_errors; 1760 storage->rx_missed_errors = np->stat_rx_missed_errors;
1761 } while (u64_stats_fetch_retry_bh(&np->swstats_rx_syncp, syncp_start)); 1761 } while (u64_stats_fetch_retry_irq(&np->swstats_rx_syncp, syncp_start));
1762 1762
1763 do { 1763 do {
1764 syncp_start = u64_stats_fetch_begin_bh(&np->swstats_tx_syncp); 1764 syncp_start = u64_stats_fetch_begin_irq(&np->swstats_tx_syncp);
1765 storage->tx_packets = np->stat_tx_packets; 1765 storage->tx_packets = np->stat_tx_packets;
1766 storage->tx_bytes = np->stat_tx_bytes; 1766 storage->tx_bytes = np->stat_tx_bytes;
1767 storage->tx_dropped = np->stat_tx_dropped; 1767 storage->tx_dropped = np->stat_tx_dropped;
1768 } while (u64_stats_fetch_retry_bh(&np->swstats_tx_syncp, syncp_start)); 1768 } while (u64_stats_fetch_retry_irq(&np->swstats_tx_syncp, syncp_start));
1769 1769
1770 /* If the nic supports hw counters then retrieve latest values */ 1770 /* If the nic supports hw counters then retrieve latest values */
1771 if (np->driver_data & DEV_HAS_STATISTICS_V123) { 1771 if (np->driver_data & DEV_HAS_STATISTICS_V123) {
diff --git a/drivers/net/ethernet/realtek/8139too.c b/drivers/net/ethernet/realtek/8139too.c
index 8cb2f357026e..2e5df148af4c 100644
--- a/drivers/net/ethernet/realtek/8139too.c
+++ b/drivers/net/ethernet/realtek/8139too.c
@@ -2522,16 +2522,16 @@ rtl8139_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
2522 netdev_stats_to_stats64(stats, &dev->stats); 2522 netdev_stats_to_stats64(stats, &dev->stats);
2523 2523
2524 do { 2524 do {
2525 start = u64_stats_fetch_begin_bh(&tp->rx_stats.syncp); 2525 start = u64_stats_fetch_begin_irq(&tp->rx_stats.syncp);
2526 stats->rx_packets = tp->rx_stats.packets; 2526 stats->rx_packets = tp->rx_stats.packets;
2527 stats->rx_bytes = tp->rx_stats.bytes; 2527 stats->rx_bytes = tp->rx_stats.bytes;
2528 } while (u64_stats_fetch_retry_bh(&tp->rx_stats.syncp, start)); 2528 } while (u64_stats_fetch_retry_irq(&tp->rx_stats.syncp, start));
2529 2529
2530 do { 2530 do {
2531 start = u64_stats_fetch_begin_bh(&tp->tx_stats.syncp); 2531 start = u64_stats_fetch_begin_irq(&tp->tx_stats.syncp);
2532 stats->tx_packets = tp->tx_stats.packets; 2532 stats->tx_packets = tp->tx_stats.packets;
2533 stats->tx_bytes = tp->tx_stats.bytes; 2533 stats->tx_bytes = tp->tx_stats.bytes;
2534 } while (u64_stats_fetch_retry_bh(&tp->tx_stats.syncp, start)); 2534 } while (u64_stats_fetch_retry_irq(&tp->tx_stats.syncp, start));
2535 2535
2536 return stats; 2536 return stats;
2537} 2537}
diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
index 90c14d16f261..aa1c079f231d 100644
--- a/drivers/net/ethernet/realtek/r8169.c
+++ b/drivers/net/ethernet/realtek/r8169.c
@@ -6590,17 +6590,17 @@ rtl8169_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
6590 rtl8169_rx_missed(dev, ioaddr); 6590 rtl8169_rx_missed(dev, ioaddr);
6591 6591
6592 do { 6592 do {
6593 start = u64_stats_fetch_begin_bh(&tp->rx_stats.syncp); 6593 start = u64_stats_fetch_begin_irq(&tp->rx_stats.syncp);
6594 stats->rx_packets = tp->rx_stats.packets; 6594 stats->rx_packets = tp->rx_stats.packets;
6595 stats->rx_bytes = tp->rx_stats.bytes; 6595 stats->rx_bytes = tp->rx_stats.bytes;
6596 } while (u64_stats_fetch_retry_bh(&tp->rx_stats.syncp, start)); 6596 } while (u64_stats_fetch_retry_irq(&tp->rx_stats.syncp, start));
6597 6597
6598 6598
6599 do { 6599 do {
6600 start = u64_stats_fetch_begin_bh(&tp->tx_stats.syncp); 6600 start = u64_stats_fetch_begin_irq(&tp->tx_stats.syncp);
6601 stats->tx_packets = tp->tx_stats.packets; 6601 stats->tx_packets = tp->tx_stats.packets;
6602 stats->tx_bytes = tp->tx_stats.bytes; 6602 stats->tx_bytes = tp->tx_stats.bytes;
6603 } while (u64_stats_fetch_retry_bh(&tp->tx_stats.syncp, start)); 6603 } while (u64_stats_fetch_retry_irq(&tp->tx_stats.syncp, start));
6604 6604
6605 stats->rx_dropped = dev->stats.rx_dropped; 6605 stats->rx_dropped = dev->stats.rx_dropped;
6606 stats->tx_dropped = dev->stats.tx_dropped; 6606 stats->tx_dropped = dev->stats.tx_dropped;
diff --git a/drivers/net/ethernet/tile/tilepro.c b/drivers/net/ethernet/tile/tilepro.c
index edb2e12a0fe2..7e33973487ee 100644
--- a/drivers/net/ethernet/tile/tilepro.c
+++ b/drivers/net/ethernet/tile/tilepro.c
@@ -2068,14 +2068,14 @@ static struct rtnl_link_stats64 *tile_net_get_stats64(struct net_device *dev,
2068 cpu_stats = &priv->cpu[i]->stats; 2068 cpu_stats = &priv->cpu[i]->stats;
2069 2069
2070 do { 2070 do {
2071 start = u64_stats_fetch_begin_bh(&cpu_stats->syncp); 2071 start = u64_stats_fetch_begin_irq(&cpu_stats->syncp);
2072 trx_packets = cpu_stats->rx_packets; 2072 trx_packets = cpu_stats->rx_packets;
2073 ttx_packets = cpu_stats->tx_packets; 2073 ttx_packets = cpu_stats->tx_packets;
2074 trx_bytes = cpu_stats->rx_bytes; 2074 trx_bytes = cpu_stats->rx_bytes;
2075 ttx_bytes = cpu_stats->tx_bytes; 2075 ttx_bytes = cpu_stats->tx_bytes;
2076 trx_errors = cpu_stats->rx_errors; 2076 trx_errors = cpu_stats->rx_errors;
2077 trx_dropped = cpu_stats->rx_dropped; 2077 trx_dropped = cpu_stats->rx_dropped;
2078 } while (u64_stats_fetch_retry_bh(&cpu_stats->syncp, start)); 2078 } while (u64_stats_fetch_retry_irq(&cpu_stats->syncp, start));
2079 2079
2080 rx_packets += trx_packets; 2080 rx_packets += trx_packets;
2081 tx_packets += ttx_packets; 2081 tx_packets += ttx_packets;
diff --git a/drivers/net/ethernet/via/via-rhine.c b/drivers/net/ethernet/via/via-rhine.c
index ef312bc6b865..5bc1a2d02dc1 100644
--- a/drivers/net/ethernet/via/via-rhine.c
+++ b/drivers/net/ethernet/via/via-rhine.c
@@ -2070,16 +2070,16 @@ rhine_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
2070 netdev_stats_to_stats64(stats, &dev->stats); 2070 netdev_stats_to_stats64(stats, &dev->stats);
2071 2071
2072 do { 2072 do {
2073 start = u64_stats_fetch_begin_bh(&rp->rx_stats.syncp); 2073 start = u64_stats_fetch_begin_irq(&rp->rx_stats.syncp);
2074 stats->rx_packets = rp->rx_stats.packets; 2074 stats->rx_packets = rp->rx_stats.packets;
2075 stats->rx_bytes = rp->rx_stats.bytes; 2075 stats->rx_bytes = rp->rx_stats.bytes;
2076 } while (u64_stats_fetch_retry_bh(&rp->rx_stats.syncp, start)); 2076 } while (u64_stats_fetch_retry_irq(&rp->rx_stats.syncp, start));
2077 2077
2078 do { 2078 do {
2079 start = u64_stats_fetch_begin_bh(&rp->tx_stats.syncp); 2079 start = u64_stats_fetch_begin_irq(&rp->tx_stats.syncp);
2080 stats->tx_packets = rp->tx_stats.packets; 2080 stats->tx_packets = rp->tx_stats.packets;
2081 stats->tx_bytes = rp->tx_stats.bytes; 2081 stats->tx_bytes = rp->tx_stats.bytes;
2082 } while (u64_stats_fetch_retry_bh(&rp->tx_stats.syncp, start)); 2082 } while (u64_stats_fetch_retry_irq(&rp->tx_stats.syncp, start));
2083 2083
2084 return stats; 2084 return stats;
2085} 2085}
diff --git a/drivers/net/ifb.c b/drivers/net/ifb.c
index c14d39bf32d0..1da36764b1a4 100644
--- a/drivers/net/ifb.c
+++ b/drivers/net/ifb.c
@@ -136,18 +136,18 @@ static struct rtnl_link_stats64 *ifb_stats64(struct net_device *dev,
136 unsigned int start; 136 unsigned int start;
137 137
138 do { 138 do {
139 start = u64_stats_fetch_begin_bh(&dp->rsync); 139 start = u64_stats_fetch_begin_irq(&dp->rsync);
140 stats->rx_packets = dp->rx_packets; 140 stats->rx_packets = dp->rx_packets;
141 stats->rx_bytes = dp->rx_bytes; 141 stats->rx_bytes = dp->rx_bytes;
142 } while (u64_stats_fetch_retry_bh(&dp->rsync, start)); 142 } while (u64_stats_fetch_retry_irq(&dp->rsync, start));
143 143
144 do { 144 do {
145 start = u64_stats_fetch_begin_bh(&dp->tsync); 145 start = u64_stats_fetch_begin_irq(&dp->tsync);
146 146
147 stats->tx_packets = dp->tx_packets; 147 stats->tx_packets = dp->tx_packets;
148 stats->tx_bytes = dp->tx_bytes; 148 stats->tx_bytes = dp->tx_bytes;
149 149
150 } while (u64_stats_fetch_retry_bh(&dp->tsync, start)); 150 } while (u64_stats_fetch_retry_irq(&dp->tsync, start));
151 151
152 stats->rx_dropped = dev->stats.rx_dropped; 152 stats->rx_dropped = dev->stats.rx_dropped;
153 stats->tx_dropped = dev->stats.tx_dropped; 153 stats->tx_dropped = dev->stats.tx_dropped;
diff --git a/drivers/net/loopback.c b/drivers/net/loopback.c
index 282effee7e1c..bb96409f8c05 100644
--- a/drivers/net/loopback.c
+++ b/drivers/net/loopback.c
@@ -111,10 +111,10 @@ static struct rtnl_link_stats64 *loopback_get_stats64(struct net_device *dev,
111 111
112 lb_stats = per_cpu_ptr(dev->lstats, i); 112 lb_stats = per_cpu_ptr(dev->lstats, i);
113 do { 113 do {
114 start = u64_stats_fetch_begin_bh(&lb_stats->syncp); 114 start = u64_stats_fetch_begin_irq(&lb_stats->syncp);
115 tbytes = lb_stats->bytes; 115 tbytes = lb_stats->bytes;
116 tpackets = lb_stats->packets; 116 tpackets = lb_stats->packets;
117 } while (u64_stats_fetch_retry_bh(&lb_stats->syncp, start)); 117 } while (u64_stats_fetch_retry_irq(&lb_stats->syncp, start));
118 bytes += tbytes; 118 bytes += tbytes;
119 packets += tpackets; 119 packets += tpackets;
120 } 120 }
diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c
index c683ac2c8c94..753a8c23d15d 100644
--- a/drivers/net/macvlan.c
+++ b/drivers/net/macvlan.c
@@ -582,13 +582,13 @@ static struct rtnl_link_stats64 *macvlan_dev_get_stats64(struct net_device *dev,
582 for_each_possible_cpu(i) { 582 for_each_possible_cpu(i) {
583 p = per_cpu_ptr(vlan->pcpu_stats, i); 583 p = per_cpu_ptr(vlan->pcpu_stats, i);
584 do { 584 do {
585 start = u64_stats_fetch_begin_bh(&p->syncp); 585 start = u64_stats_fetch_begin_irq(&p->syncp);
586 rx_packets = p->rx_packets; 586 rx_packets = p->rx_packets;
587 rx_bytes = p->rx_bytes; 587 rx_bytes = p->rx_bytes;
588 rx_multicast = p->rx_multicast; 588 rx_multicast = p->rx_multicast;
589 tx_packets = p->tx_packets; 589 tx_packets = p->tx_packets;
590 tx_bytes = p->tx_bytes; 590 tx_bytes = p->tx_bytes;
591 } while (u64_stats_fetch_retry_bh(&p->syncp, start)); 591 } while (u64_stats_fetch_retry_irq(&p->syncp, start));
592 592
593 stats->rx_packets += rx_packets; 593 stats->rx_packets += rx_packets;
594 stats->rx_bytes += rx_bytes; 594 stats->rx_bytes += rx_bytes;
diff --git a/drivers/net/nlmon.c b/drivers/net/nlmon.c
index 14ce7de6a933..6929b03ec638 100644
--- a/drivers/net/nlmon.c
+++ b/drivers/net/nlmon.c
@@ -90,10 +90,10 @@ nlmon_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
90 nl_stats = per_cpu_ptr(dev->lstats, i); 90 nl_stats = per_cpu_ptr(dev->lstats, i);
91 91
92 do { 92 do {
93 start = u64_stats_fetch_begin_bh(&nl_stats->syncp); 93 start = u64_stats_fetch_begin_irq(&nl_stats->syncp);
94 tbytes = nl_stats->bytes; 94 tbytes = nl_stats->bytes;
95 tpackets = nl_stats->packets; 95 tpackets = nl_stats->packets;
96 } while (u64_stats_fetch_retry_bh(&nl_stats->syncp, start)); 96 } while (u64_stats_fetch_retry_irq(&nl_stats->syncp, start));
97 97
98 packets += tpackets; 98 packets += tpackets;
99 bytes += tbytes; 99 bytes += tbytes;
diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c
index aea92f02401b..2b1a1d61072c 100644
--- a/drivers/net/team/team.c
+++ b/drivers/net/team/team.c
@@ -1761,13 +1761,13 @@ team_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
1761 for_each_possible_cpu(i) { 1761 for_each_possible_cpu(i) {
1762 p = per_cpu_ptr(team->pcpu_stats, i); 1762 p = per_cpu_ptr(team->pcpu_stats, i);
1763 do { 1763 do {
1764 start = u64_stats_fetch_begin_bh(&p->syncp); 1764 start = u64_stats_fetch_begin_irq(&p->syncp);
1765 rx_packets = p->rx_packets; 1765 rx_packets = p->rx_packets;
1766 rx_bytes = p->rx_bytes; 1766 rx_bytes = p->rx_bytes;
1767 rx_multicast = p->rx_multicast; 1767 rx_multicast = p->rx_multicast;
1768 tx_packets = p->tx_packets; 1768 tx_packets = p->tx_packets;
1769 tx_bytes = p->tx_bytes; 1769 tx_bytes = p->tx_bytes;
1770 } while (u64_stats_fetch_retry_bh(&p->syncp, start)); 1770 } while (u64_stats_fetch_retry_irq(&p->syncp, start));
1771 1771
1772 stats->rx_packets += rx_packets; 1772 stats->rx_packets += rx_packets;
1773 stats->rx_bytes += rx_bytes; 1773 stats->rx_bytes += rx_bytes;
diff --git a/drivers/net/team/team_mode_loadbalance.c b/drivers/net/team/team_mode_loadbalance.c
index d671fc3ac5ac..dbde3412ee5e 100644
--- a/drivers/net/team/team_mode_loadbalance.c
+++ b/drivers/net/team/team_mode_loadbalance.c
@@ -432,9 +432,9 @@ static void __lb_one_cpu_stats_add(struct lb_stats *acc_stats,
432 struct lb_stats tmp; 432 struct lb_stats tmp;
433 433
434 do { 434 do {
435 start = u64_stats_fetch_begin_bh(syncp); 435 start = u64_stats_fetch_begin_irq(syncp);
436 tmp.tx_bytes = cpu_stats->tx_bytes; 436 tmp.tx_bytes = cpu_stats->tx_bytes;
437 } while (u64_stats_fetch_retry_bh(syncp, start)); 437 } while (u64_stats_fetch_retry_irq(syncp, start));
438 acc_stats->tx_bytes += tmp.tx_bytes; 438 acc_stats->tx_bytes += tmp.tx_bytes;
439} 439}
440 440
diff --git a/drivers/net/veth.c b/drivers/net/veth.c
index 3aca92e80e1e..e1c77d4b80e4 100644
--- a/drivers/net/veth.c
+++ b/drivers/net/veth.c
@@ -156,10 +156,10 @@ static u64 veth_stats_one(struct pcpu_vstats *result, struct net_device *dev)
156 unsigned int start; 156 unsigned int start;
157 157
158 do { 158 do {
159 start = u64_stats_fetch_begin_bh(&stats->syncp); 159 start = u64_stats_fetch_begin_irq(&stats->syncp);
160 packets = stats->packets; 160 packets = stats->packets;
161 bytes = stats->bytes; 161 bytes = stats->bytes;
162 } while (u64_stats_fetch_retry_bh(&stats->syncp, start)); 162 } while (u64_stats_fetch_retry_irq(&stats->syncp, start));
163 result->packets += packets; 163 result->packets += packets;
164 result->bytes += bytes; 164 result->bytes += bytes;
165 } 165 }
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index 5632a99cbbd2..80d84c446962 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -1000,16 +1000,16 @@ static struct rtnl_link_stats64 *virtnet_stats(struct net_device *dev,
1000 u64 tpackets, tbytes, rpackets, rbytes; 1000 u64 tpackets, tbytes, rpackets, rbytes;
1001 1001
1002 do { 1002 do {
1003 start = u64_stats_fetch_begin_bh(&stats->tx_syncp); 1003 start = u64_stats_fetch_begin_irq(&stats->tx_syncp);
1004 tpackets = stats->tx_packets; 1004 tpackets = stats->tx_packets;
1005 tbytes = stats->tx_bytes; 1005 tbytes = stats->tx_bytes;
1006 } while (u64_stats_fetch_retry_bh(&stats->tx_syncp, start)); 1006 } while (u64_stats_fetch_retry_irq(&stats->tx_syncp, start));
1007 1007
1008 do { 1008 do {
1009 start = u64_stats_fetch_begin_bh(&stats->rx_syncp); 1009 start = u64_stats_fetch_begin_irq(&stats->rx_syncp);
1010 rpackets = stats->rx_packets; 1010 rpackets = stats->rx_packets;
1011 rbytes = stats->rx_bytes; 1011 rbytes = stats->rx_bytes;
1012 } while (u64_stats_fetch_retry_bh(&stats->rx_syncp, start)); 1012 } while (u64_stats_fetch_retry_irq(&stats->rx_syncp, start));
1013 1013
1014 tot->rx_packets += rpackets; 1014 tot->rx_packets += rpackets;
1015 tot->tx_packets += tpackets; 1015 tot->tx_packets += tpackets;
diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c
index a38f03ded5a4..49f3b3dbbed8 100644
--- a/drivers/net/xen-netfront.c
+++ b/drivers/net/xen-netfront.c
@@ -1060,13 +1060,13 @@ static struct rtnl_link_stats64 *xennet_get_stats64(struct net_device *dev,
1060 unsigned int start; 1060 unsigned int start;
1061 1061
1062 do { 1062 do {
1063 start = u64_stats_fetch_begin_bh(&stats->syncp); 1063 start = u64_stats_fetch_begin_irq(&stats->syncp);
1064 1064
1065 rx_packets = stats->rx_packets; 1065 rx_packets = stats->rx_packets;
1066 tx_packets = stats->tx_packets; 1066 tx_packets = stats->tx_packets;
1067 rx_bytes = stats->rx_bytes; 1067 rx_bytes = stats->rx_bytes;
1068 tx_bytes = stats->tx_bytes; 1068 tx_bytes = stats->tx_bytes;
1069 } while (u64_stats_fetch_retry_bh(&stats->syncp, start)); 1069 } while (u64_stats_fetch_retry_irq(&stats->syncp, start));
1070 1070
1071 tot->rx_packets += rx_packets; 1071 tot->rx_packets += rx_packets;
1072 tot->tx_packets += tx_packets; 1072 tot->tx_packets += tx_packets;