net: Remove the obsolte u64_stats_fetch_*_irq() users (drivers).
Now that the 32bit UP oddity is gone and 32bit uses always a sequence count, there is no need for the fetch_irq() variants anymore. Convert to the regular interface. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
196dd92a00
commit
068c38ad88
|
@ -288,13 +288,13 @@ do { \
|
|||
u64_stats_update_end(&(st)->syncp); \
|
||||
} while (0)
|
||||
|
||||
#define SLIC_GET_STATS_COUNTER(newst, st, counter) \
|
||||
{ \
|
||||
unsigned int start; \
|
||||
#define SLIC_GET_STATS_COUNTER(newst, st, counter) \
|
||||
{ \
|
||||
unsigned int start; \
|
||||
do { \
|
||||
start = u64_stats_fetch_begin_irq(&(st)->syncp); \
|
||||
newst = (st)->counter; \
|
||||
} while (u64_stats_fetch_retry_irq(&(st)->syncp, start)); \
|
||||
start = u64_stats_fetch_begin(&(st)->syncp); \
|
||||
newst = (st)->counter; \
|
||||
} while (u64_stats_fetch_retry(&(st)->syncp, start)); \
|
||||
}
|
||||
|
||||
struct slic_upr {
|
||||
|
|
|
@ -118,9 +118,9 @@ static void ena_safe_update_stat(u64 *src, u64 *dst,
|
|||
unsigned int start;
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(syncp);
|
||||
start = u64_stats_fetch_begin(syncp);
|
||||
*(dst) = *src;
|
||||
} while (u64_stats_fetch_retry_irq(syncp, start));
|
||||
} while (u64_stats_fetch_retry(syncp, start));
|
||||
}
|
||||
|
||||
static void ena_queue_stats(struct ena_adapter *adapter, u64 **data)
|
||||
|
|
|
@ -3268,10 +3268,10 @@ static void ena_get_stats64(struct net_device *netdev,
|
|||
tx_ring = &adapter->tx_ring[i];
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&tx_ring->syncp);
|
||||
start = u64_stats_fetch_begin(&tx_ring->syncp);
|
||||
packets = tx_ring->tx_stats.cnt;
|
||||
bytes = tx_ring->tx_stats.bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&tx_ring->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&tx_ring->syncp, start));
|
||||
|
||||
stats->tx_packets += packets;
|
||||
stats->tx_bytes += bytes;
|
||||
|
@ -3279,20 +3279,20 @@ static void ena_get_stats64(struct net_device *netdev,
|
|||
rx_ring = &adapter->rx_ring[i];
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&rx_ring->syncp);
|
||||
start = u64_stats_fetch_begin(&rx_ring->syncp);
|
||||
packets = rx_ring->rx_stats.cnt;
|
||||
bytes = rx_ring->rx_stats.bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&rx_ring->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&rx_ring->syncp, start));
|
||||
|
||||
stats->rx_packets += packets;
|
||||
stats->rx_bytes += bytes;
|
||||
}
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&adapter->syncp);
|
||||
start = u64_stats_fetch_begin(&adapter->syncp);
|
||||
rx_drops = adapter->dev_stats.rx_drops;
|
||||
tx_drops = adapter->dev_stats.tx_drops;
|
||||
} while (u64_stats_fetch_retry_irq(&adapter->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&adapter->syncp, start));
|
||||
|
||||
stats->rx_dropped = rx_drops;
|
||||
stats->tx_dropped = tx_drops;
|
||||
|
|
|
@ -934,7 +934,7 @@ unsigned int aq_ring_fill_stats_data(struct aq_ring_s *self, u64 *data)
|
|||
/* This data should mimic aq_ethtool_queue_rx_stat_names structure */
|
||||
do {
|
||||
count = 0;
|
||||
start = u64_stats_fetch_begin_irq(&self->stats.rx.syncp);
|
||||
start = u64_stats_fetch_begin(&self->stats.rx.syncp);
|
||||
data[count] = self->stats.rx.packets;
|
||||
data[++count] = self->stats.rx.jumbo_packets;
|
||||
data[++count] = self->stats.rx.lro_packets;
|
||||
|
@ -951,15 +951,15 @@ unsigned int aq_ring_fill_stats_data(struct aq_ring_s *self, u64 *data)
|
|||
data[++count] = self->stats.rx.xdp_tx;
|
||||
data[++count] = self->stats.rx.xdp_invalid;
|
||||
data[++count] = self->stats.rx.xdp_redirect;
|
||||
} while (u64_stats_fetch_retry_irq(&self->stats.rx.syncp, start));
|
||||
} while (u64_stats_fetch_retry(&self->stats.rx.syncp, start));
|
||||
} else {
|
||||
/* This data should mimic aq_ethtool_queue_tx_stat_names structure */
|
||||
do {
|
||||
count = 0;
|
||||
start = u64_stats_fetch_begin_irq(&self->stats.tx.syncp);
|
||||
start = u64_stats_fetch_begin(&self->stats.tx.syncp);
|
||||
data[count] = self->stats.tx.packets;
|
||||
data[++count] = self->stats.tx.queue_restarts;
|
||||
} while (u64_stats_fetch_retry_irq(&self->stats.tx.syncp, start));
|
||||
} while (u64_stats_fetch_retry(&self->stats.tx.syncp, start));
|
||||
}
|
||||
|
||||
return ++count;
|
||||
|
|
|
@ -662,12 +662,12 @@ static void ax88796c_get_stats64(struct net_device *ndev,
|
|||
s = per_cpu_ptr(ax_local->stats, cpu);
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&s->syncp);
|
||||
start = u64_stats_fetch_begin(&s->syncp);
|
||||
rx_packets = u64_stats_read(&s->rx_packets);
|
||||
rx_bytes = u64_stats_read(&s->rx_bytes);
|
||||
tx_packets = u64_stats_read(&s->tx_packets);
|
||||
tx_bytes = u64_stats_read(&s->tx_bytes);
|
||||
} while (u64_stats_fetch_retry_irq(&s->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&s->syncp, start));
|
||||
|
||||
stats->rx_packets += rx_packets;
|
||||
stats->rx_bytes += rx_bytes;
|
||||
|
|
|
@ -1680,7 +1680,7 @@ static void b44_get_stats64(struct net_device *dev,
|
|||
unsigned int start;
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&hwstat->syncp);
|
||||
start = u64_stats_fetch_begin(&hwstat->syncp);
|
||||
|
||||
/* Convert HW stats into rtnl_link_stats64 stats. */
|
||||
nstat->rx_packets = hwstat->rx_pkts;
|
||||
|
@ -1714,7 +1714,7 @@ static void b44_get_stats64(struct net_device *dev,
|
|||
/* Carrier lost counter seems to be broken for some devices */
|
||||
nstat->tx_carrier_errors = hwstat->tx_carrier_lost;
|
||||
#endif
|
||||
} while (u64_stats_fetch_retry_irq(&hwstat->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&hwstat->syncp, start));
|
||||
|
||||
}
|
||||
|
||||
|
@ -2082,12 +2082,12 @@ static void b44_get_ethtool_stats(struct net_device *dev,
|
|||
do {
|
||||
data_src = &hwstat->tx_good_octets;
|
||||
data_dst = data;
|
||||
start = u64_stats_fetch_begin_irq(&hwstat->syncp);
|
||||
start = u64_stats_fetch_begin(&hwstat->syncp);
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(b44_gstrings); i++)
|
||||
*data_dst++ = *data_src++;
|
||||
|
||||
} while (u64_stats_fetch_retry_irq(&hwstat->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&hwstat->syncp, start));
|
||||
}
|
||||
|
||||
static void b44_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
|
||||
|
|
|
@ -457,10 +457,10 @@ static void bcm_sysport_update_tx_stats(struct bcm_sysport_priv *priv,
|
|||
for (q = 0; q < priv->netdev->num_tx_queues; q++) {
|
||||
ring = &priv->tx_rings[q];
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&priv->syncp);
|
||||
start = u64_stats_fetch_begin(&priv->syncp);
|
||||
bytes = ring->bytes;
|
||||
packets = ring->packets;
|
||||
} while (u64_stats_fetch_retry_irq(&priv->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&priv->syncp, start));
|
||||
|
||||
*tx_bytes += bytes;
|
||||
*tx_packets += packets;
|
||||
|
@ -504,9 +504,9 @@ static void bcm_sysport_get_stats(struct net_device *dev,
|
|||
if (s->stat_sizeof == sizeof(u64) &&
|
||||
s->type == BCM_SYSPORT_STAT_NETDEV64) {
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(syncp);
|
||||
start = u64_stats_fetch_begin(syncp);
|
||||
data[i] = *(u64 *)p;
|
||||
} while (u64_stats_fetch_retry_irq(syncp, start));
|
||||
} while (u64_stats_fetch_retry(syncp, start));
|
||||
} else
|
||||
data[i] = *(u32 *)p;
|
||||
j++;
|
||||
|
@ -1878,10 +1878,10 @@ static void bcm_sysport_get_stats64(struct net_device *dev,
|
|||
&stats->tx_packets);
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&priv->syncp);
|
||||
start = u64_stats_fetch_begin(&priv->syncp);
|
||||
stats->rx_packets = stats64->rx_packets;
|
||||
stats->rx_bytes = stats64->rx_bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&priv->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&priv->syncp, start));
|
||||
}
|
||||
|
||||
static void bcm_sysport_netif_start(struct net_device *dev)
|
||||
|
|
|
@ -1919,7 +1919,7 @@ static void gmac_get_stats64(struct net_device *netdev,
|
|||
|
||||
/* Racing with RX NAPI */
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&port->rx_stats_syncp);
|
||||
start = u64_stats_fetch_begin(&port->rx_stats_syncp);
|
||||
|
||||
stats->rx_packets = port->stats.rx_packets;
|
||||
stats->rx_bytes = port->stats.rx_bytes;
|
||||
|
@ -1931,11 +1931,11 @@ static void gmac_get_stats64(struct net_device *netdev,
|
|||
stats->rx_crc_errors = port->stats.rx_crc_errors;
|
||||
stats->rx_frame_errors = port->stats.rx_frame_errors;
|
||||
|
||||
} while (u64_stats_fetch_retry_irq(&port->rx_stats_syncp, start));
|
||||
} while (u64_stats_fetch_retry(&port->rx_stats_syncp, start));
|
||||
|
||||
/* Racing with MIB and TX completion interrupts */
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&port->ir_stats_syncp);
|
||||
start = u64_stats_fetch_begin(&port->ir_stats_syncp);
|
||||
|
||||
stats->tx_errors = port->stats.tx_errors;
|
||||
stats->tx_packets = port->stats.tx_packets;
|
||||
|
@ -1945,15 +1945,15 @@ static void gmac_get_stats64(struct net_device *netdev,
|
|||
stats->rx_missed_errors = port->stats.rx_missed_errors;
|
||||
stats->rx_fifo_errors = port->stats.rx_fifo_errors;
|
||||
|
||||
} while (u64_stats_fetch_retry_irq(&port->ir_stats_syncp, start));
|
||||
} while (u64_stats_fetch_retry(&port->ir_stats_syncp, start));
|
||||
|
||||
/* Racing with hard_start_xmit */
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&port->tx_stats_syncp);
|
||||
start = u64_stats_fetch_begin(&port->tx_stats_syncp);
|
||||
|
||||
stats->tx_dropped = port->stats.tx_dropped;
|
||||
|
||||
} while (u64_stats_fetch_retry_irq(&port->tx_stats_syncp, start));
|
||||
} while (u64_stats_fetch_retry(&port->tx_stats_syncp, start));
|
||||
|
||||
stats->rx_dropped += stats->rx_missed_errors;
|
||||
}
|
||||
|
@ -2031,18 +2031,18 @@ static void gmac_get_ethtool_stats(struct net_device *netdev,
|
|||
/* Racing with MIB interrupt */
|
||||
do {
|
||||
p = values;
|
||||
start = u64_stats_fetch_begin_irq(&port->ir_stats_syncp);
|
||||
start = u64_stats_fetch_begin(&port->ir_stats_syncp);
|
||||
|
||||
for (i = 0; i < RX_STATS_NUM; i++)
|
||||
*p++ = port->hw_stats[i];
|
||||
|
||||
} while (u64_stats_fetch_retry_irq(&port->ir_stats_syncp, start));
|
||||
} while (u64_stats_fetch_retry(&port->ir_stats_syncp, start));
|
||||
values = p;
|
||||
|
||||
/* Racing with RX NAPI */
|
||||
do {
|
||||
p = values;
|
||||
start = u64_stats_fetch_begin_irq(&port->rx_stats_syncp);
|
||||
start = u64_stats_fetch_begin(&port->rx_stats_syncp);
|
||||
|
||||
for (i = 0; i < RX_STATUS_NUM; i++)
|
||||
*p++ = port->rx_stats[i];
|
||||
|
@ -2050,13 +2050,13 @@ static void gmac_get_ethtool_stats(struct net_device *netdev,
|
|||
*p++ = port->rx_csum_stats[i];
|
||||
*p++ = port->rx_napi_exits;
|
||||
|
||||
} while (u64_stats_fetch_retry_irq(&port->rx_stats_syncp, start));
|
||||
} while (u64_stats_fetch_retry(&port->rx_stats_syncp, start));
|
||||
values = p;
|
||||
|
||||
/* Racing with TX start_xmit */
|
||||
do {
|
||||
p = values;
|
||||
start = u64_stats_fetch_begin_irq(&port->tx_stats_syncp);
|
||||
start = u64_stats_fetch_begin(&port->tx_stats_syncp);
|
||||
|
||||
for (i = 0; i < TX_MAX_FRAGS; i++) {
|
||||
*values++ = port->tx_frag_stats[i];
|
||||
|
@ -2065,7 +2065,7 @@ static void gmac_get_ethtool_stats(struct net_device *netdev,
|
|||
*values++ = port->tx_frags_linearized;
|
||||
*values++ = port->tx_hw_csummed;
|
||||
|
||||
} while (u64_stats_fetch_retry_irq(&port->tx_stats_syncp, start));
|
||||
} while (u64_stats_fetch_retry(&port->tx_stats_syncp, start));
|
||||
}
|
||||
|
||||
static int gmac_get_ksettings(struct net_device *netdev,
|
||||
|
|
|
@ -389,10 +389,10 @@ static void be_get_ethtool_stats(struct net_device *netdev,
|
|||
struct be_rx_stats *stats = rx_stats(rxo);
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&stats->sync);
|
||||
start = u64_stats_fetch_begin(&stats->sync);
|
||||
data[base] = stats->rx_bytes;
|
||||
data[base + 1] = stats->rx_pkts;
|
||||
} while (u64_stats_fetch_retry_irq(&stats->sync, start));
|
||||
} while (u64_stats_fetch_retry(&stats->sync, start));
|
||||
|
||||
for (i = 2; i < ETHTOOL_RXSTATS_NUM; i++) {
|
||||
p = (u8 *)stats + et_rx_stats[i].offset;
|
||||
|
@ -405,19 +405,19 @@ static void be_get_ethtool_stats(struct net_device *netdev,
|
|||
struct be_tx_stats *stats = tx_stats(txo);
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&stats->sync_compl);
|
||||
start = u64_stats_fetch_begin(&stats->sync_compl);
|
||||
data[base] = stats->tx_compl;
|
||||
} while (u64_stats_fetch_retry_irq(&stats->sync_compl, start));
|
||||
} while (u64_stats_fetch_retry(&stats->sync_compl, start));
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&stats->sync);
|
||||
start = u64_stats_fetch_begin(&stats->sync);
|
||||
for (i = 1; i < ETHTOOL_TXSTATS_NUM; i++) {
|
||||
p = (u8 *)stats + et_tx_stats[i].offset;
|
||||
data[base + i] =
|
||||
(et_tx_stats[i].size == sizeof(u64)) ?
|
||||
*(u64 *)p : *(u32 *)p;
|
||||
}
|
||||
} while (u64_stats_fetch_retry_irq(&stats->sync, start));
|
||||
} while (u64_stats_fetch_retry(&stats->sync, start));
|
||||
base += ETHTOOL_TXSTATS_NUM;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -665,10 +665,10 @@ static void be_get_stats64(struct net_device *netdev,
|
|||
const struct be_rx_stats *rx_stats = rx_stats(rxo);
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&rx_stats->sync);
|
||||
start = u64_stats_fetch_begin(&rx_stats->sync);
|
||||
pkts = rx_stats(rxo)->rx_pkts;
|
||||
bytes = rx_stats(rxo)->rx_bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&rx_stats->sync, start));
|
||||
} while (u64_stats_fetch_retry(&rx_stats->sync, start));
|
||||
stats->rx_packets += pkts;
|
||||
stats->rx_bytes += bytes;
|
||||
stats->multicast += rx_stats(rxo)->rx_mcast_pkts;
|
||||
|
@ -680,10 +680,10 @@ static void be_get_stats64(struct net_device *netdev,
|
|||
const struct be_tx_stats *tx_stats = tx_stats(txo);
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&tx_stats->sync);
|
||||
start = u64_stats_fetch_begin(&tx_stats->sync);
|
||||
pkts = tx_stats(txo)->tx_pkts;
|
||||
bytes = tx_stats(txo)->tx_bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&tx_stats->sync, start));
|
||||
} while (u64_stats_fetch_retry(&tx_stats->sync, start));
|
||||
stats->tx_packets += pkts;
|
||||
stats->tx_bytes += bytes;
|
||||
}
|
||||
|
@ -2155,16 +2155,16 @@ static int be_get_new_eqd(struct be_eq_obj *eqo)
|
|||
|
||||
for_all_rx_queues_on_eq(adapter, eqo, rxo, i) {
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&rxo->stats.sync);
|
||||
start = u64_stats_fetch_begin(&rxo->stats.sync);
|
||||
rx_pkts += rxo->stats.rx_pkts;
|
||||
} while (u64_stats_fetch_retry_irq(&rxo->stats.sync, start));
|
||||
} while (u64_stats_fetch_retry(&rxo->stats.sync, start));
|
||||
}
|
||||
|
||||
for_all_tx_queues_on_eq(adapter, eqo, txo, i) {
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&txo->stats.sync);
|
||||
start = u64_stats_fetch_begin(&txo->stats.sync);
|
||||
tx_pkts += txo->stats.tx_reqs;
|
||||
} while (u64_stats_fetch_retry_irq(&txo->stats.sync, start));
|
||||
} while (u64_stats_fetch_retry(&txo->stats.sync, start));
|
||||
}
|
||||
|
||||
/* Skip, if wrapped around or first calculation */
|
||||
|
|
|
@ -206,9 +206,9 @@ struct funeth_rxq {
|
|||
|
||||
#define FUN_QSTAT_READ(q, seq, stats_copy) \
|
||||
do { \
|
||||
seq = u64_stats_fetch_begin_irq(&(q)->syncp); \
|
||||
seq = u64_stats_fetch_begin(&(q)->syncp); \
|
||||
stats_copy = (q)->stats; \
|
||||
} while (u64_stats_fetch_retry_irq(&(q)->syncp, (seq)))
|
||||
} while (u64_stats_fetch_retry(&(q)->syncp, (seq)))
|
||||
|
||||
#define FUN_INT_NAME_LEN (IFNAMSIZ + 16)
|
||||
|
||||
|
|
|
@ -177,14 +177,14 @@ gve_get_ethtool_stats(struct net_device *netdev,
|
|||
struct gve_rx_ring *rx = &priv->rx[ring];
|
||||
|
||||
start =
|
||||
u64_stats_fetch_begin_irq(&priv->rx[ring].statss);
|
||||
u64_stats_fetch_begin(&priv->rx[ring].statss);
|
||||
tmp_rx_pkts = rx->rpackets;
|
||||
tmp_rx_bytes = rx->rbytes;
|
||||
tmp_rx_skb_alloc_fail = rx->rx_skb_alloc_fail;
|
||||
tmp_rx_buf_alloc_fail = rx->rx_buf_alloc_fail;
|
||||
tmp_rx_desc_err_dropped_pkt =
|
||||
rx->rx_desc_err_dropped_pkt;
|
||||
} while (u64_stats_fetch_retry_irq(&priv->rx[ring].statss,
|
||||
} while (u64_stats_fetch_retry(&priv->rx[ring].statss,
|
||||
start));
|
||||
rx_pkts += tmp_rx_pkts;
|
||||
rx_bytes += tmp_rx_bytes;
|
||||
|
@ -198,10 +198,10 @@ gve_get_ethtool_stats(struct net_device *netdev,
|
|||
if (priv->tx) {
|
||||
do {
|
||||
start =
|
||||
u64_stats_fetch_begin_irq(&priv->tx[ring].statss);
|
||||
u64_stats_fetch_begin(&priv->tx[ring].statss);
|
||||
tmp_tx_pkts = priv->tx[ring].pkt_done;
|
||||
tmp_tx_bytes = priv->tx[ring].bytes_done;
|
||||
} while (u64_stats_fetch_retry_irq(&priv->tx[ring].statss,
|
||||
} while (u64_stats_fetch_retry(&priv->tx[ring].statss,
|
||||
start));
|
||||
tx_pkts += tmp_tx_pkts;
|
||||
tx_bytes += tmp_tx_bytes;
|
||||
|
@ -259,13 +259,13 @@ gve_get_ethtool_stats(struct net_device *netdev,
|
|||
data[i++] = rx->fill_cnt - rx->cnt;
|
||||
do {
|
||||
start =
|
||||
u64_stats_fetch_begin_irq(&priv->rx[ring].statss);
|
||||
u64_stats_fetch_begin(&priv->rx[ring].statss);
|
||||
tmp_rx_bytes = rx->rbytes;
|
||||
tmp_rx_skb_alloc_fail = rx->rx_skb_alloc_fail;
|
||||
tmp_rx_buf_alloc_fail = rx->rx_buf_alloc_fail;
|
||||
tmp_rx_desc_err_dropped_pkt =
|
||||
rx->rx_desc_err_dropped_pkt;
|
||||
} while (u64_stats_fetch_retry_irq(&priv->rx[ring].statss,
|
||||
} while (u64_stats_fetch_retry(&priv->rx[ring].statss,
|
||||
start));
|
||||
data[i++] = tmp_rx_bytes;
|
||||
data[i++] = rx->rx_cont_packet_cnt;
|
||||
|
@ -331,9 +331,9 @@ gve_get_ethtool_stats(struct net_device *netdev,
|
|||
}
|
||||
do {
|
||||
start =
|
||||
u64_stats_fetch_begin_irq(&priv->tx[ring].statss);
|
||||
u64_stats_fetch_begin(&priv->tx[ring].statss);
|
||||
tmp_tx_bytes = tx->bytes_done;
|
||||
} while (u64_stats_fetch_retry_irq(&priv->tx[ring].statss,
|
||||
} while (u64_stats_fetch_retry(&priv->tx[ring].statss,
|
||||
start));
|
||||
data[i++] = tmp_tx_bytes;
|
||||
data[i++] = tx->wake_queue;
|
||||
|
|
|
@ -51,10 +51,10 @@ static void gve_get_stats(struct net_device *dev, struct rtnl_link_stats64 *s)
|
|||
for (ring = 0; ring < priv->rx_cfg.num_queues; ring++) {
|
||||
do {
|
||||
start =
|
||||
u64_stats_fetch_begin_irq(&priv->rx[ring].statss);
|
||||
u64_stats_fetch_begin(&priv->rx[ring].statss);
|
||||
packets = priv->rx[ring].rpackets;
|
||||
bytes = priv->rx[ring].rbytes;
|
||||
} while (u64_stats_fetch_retry_irq(&priv->rx[ring].statss,
|
||||
} while (u64_stats_fetch_retry(&priv->rx[ring].statss,
|
||||
start));
|
||||
s->rx_packets += packets;
|
||||
s->rx_bytes += bytes;
|
||||
|
@ -64,10 +64,10 @@ static void gve_get_stats(struct net_device *dev, struct rtnl_link_stats64 *s)
|
|||
for (ring = 0; ring < priv->tx_cfg.num_queues; ring++) {
|
||||
do {
|
||||
start =
|
||||
u64_stats_fetch_begin_irq(&priv->tx[ring].statss);
|
||||
u64_stats_fetch_begin(&priv->tx[ring].statss);
|
||||
packets = priv->tx[ring].pkt_done;
|
||||
bytes = priv->tx[ring].bytes_done;
|
||||
} while (u64_stats_fetch_retry_irq(&priv->tx[ring].statss,
|
||||
} while (u64_stats_fetch_retry(&priv->tx[ring].statss,
|
||||
start));
|
||||
s->tx_packets += packets;
|
||||
s->tx_bytes += bytes;
|
||||
|
@ -1273,9 +1273,9 @@ void gve_handle_report_stats(struct gve_priv *priv)
|
|||
}
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&priv->tx[idx].statss);
|
||||
start = u64_stats_fetch_begin(&priv->tx[idx].statss);
|
||||
tx_bytes = priv->tx[idx].bytes_done;
|
||||
} while (u64_stats_fetch_retry_irq(&priv->tx[idx].statss, start));
|
||||
} while (u64_stats_fetch_retry(&priv->tx[idx].statss, start));
|
||||
stats[stats_idx++] = (struct stats) {
|
||||
.stat_name = cpu_to_be32(TX_WAKE_CNT),
|
||||
.value = cpu_to_be64(priv->tx[idx].wake_queue),
|
||||
|
|
|
@ -2486,7 +2486,7 @@ static void hns3_fetch_stats(struct rtnl_link_stats64 *stats,
|
|||
unsigned int start;
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&ring->syncp);
|
||||
start = u64_stats_fetch_begin(&ring->syncp);
|
||||
if (is_tx) {
|
||||
stats->tx_bytes += ring->stats.tx_bytes;
|
||||
stats->tx_packets += ring->stats.tx_pkts;
|
||||
|
@ -2520,7 +2520,7 @@ static void hns3_fetch_stats(struct rtnl_link_stats64 *stats,
|
|||
stats->multicast += ring->stats.rx_multicast;
|
||||
stats->rx_length_errors += ring->stats.err_pkt_len;
|
||||
}
|
||||
} while (u64_stats_fetch_retry_irq(&ring->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&ring->syncp, start));
|
||||
}
|
||||
|
||||
static void hns3_nic_get_stats64(struct net_device *netdev,
|
||||
|
|
|
@ -74,14 +74,14 @@ void hinic_rxq_get_stats(struct hinic_rxq *rxq, struct hinic_rxq_stats *stats)
|
|||
unsigned int start;
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&rxq_stats->syncp);
|
||||
start = u64_stats_fetch_begin(&rxq_stats->syncp);
|
||||
stats->pkts = rxq_stats->pkts;
|
||||
stats->bytes = rxq_stats->bytes;
|
||||
stats->errors = rxq_stats->csum_errors +
|
||||
rxq_stats->other_errors;
|
||||
stats->csum_errors = rxq_stats->csum_errors;
|
||||
stats->other_errors = rxq_stats->other_errors;
|
||||
} while (u64_stats_fetch_retry_irq(&rxq_stats->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&rxq_stats->syncp, start));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -99,14 +99,14 @@ void hinic_txq_get_stats(struct hinic_txq *txq, struct hinic_txq_stats *stats)
|
|||
unsigned int start;
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&txq_stats->syncp);
|
||||
start = u64_stats_fetch_begin(&txq_stats->syncp);
|
||||
stats->pkts = txq_stats->pkts;
|
||||
stats->bytes = txq_stats->bytes;
|
||||
stats->tx_busy = txq_stats->tx_busy;
|
||||
stats->tx_wake = txq_stats->tx_wake;
|
||||
stats->tx_dropped = txq_stats->tx_dropped;
|
||||
stats->big_frags_pkts = txq_stats->big_frags_pkts;
|
||||
} while (u64_stats_fetch_retry_irq(&txq_stats->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&txq_stats->syncp, start));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1229,10 +1229,10 @@ static void fm10k_get_stats64(struct net_device *netdev,
|
|||
continue;
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&ring->syncp);
|
||||
start = u64_stats_fetch_begin(&ring->syncp);
|
||||
packets = ring->stats.packets;
|
||||
bytes = ring->stats.bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&ring->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&ring->syncp, start));
|
||||
|
||||
stats->rx_packets += packets;
|
||||
stats->rx_bytes += bytes;
|
||||
|
@ -1245,10 +1245,10 @@ static void fm10k_get_stats64(struct net_device *netdev,
|
|||
continue;
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&ring->syncp);
|
||||
start = u64_stats_fetch_begin(&ring->syncp);
|
||||
packets = ring->stats.packets;
|
||||
bytes = ring->stats.bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&ring->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&ring->syncp, start));
|
||||
|
||||
stats->tx_packets += packets;
|
||||
stats->tx_bytes += bytes;
|
||||
|
|
|
@ -154,7 +154,7 @@ __i40e_add_ethtool_stats(u64 **data, void *pointer,
|
|||
* @ring: the ring to copy
|
||||
*
|
||||
* Queue statistics must be copied while protected by
|
||||
* u64_stats_fetch_begin_irq, so we can't directly use i40e_add_ethtool_stats.
|
||||
* u64_stats_fetch_begin, so we can't directly use i40e_add_ethtool_stats.
|
||||
* Assumes that queue stats are defined in i40e_gstrings_queue_stats. If the
|
||||
* ring pointer is null, zero out the queue stat values and update the data
|
||||
* pointer. Otherwise safely copy the stats from the ring into the supplied
|
||||
|
@ -172,16 +172,16 @@ i40e_add_queue_stats(u64 **data, struct i40e_ring *ring)
|
|||
|
||||
/* To avoid invalid statistics values, ensure that we keep retrying
|
||||
* the copy until we get a consistent value according to
|
||||
* u64_stats_fetch_retry_irq. But first, make sure our ring is
|
||||
* u64_stats_fetch_retry. But first, make sure our ring is
|
||||
* non-null before attempting to access its syncp.
|
||||
*/
|
||||
do {
|
||||
start = !ring ? 0 : u64_stats_fetch_begin_irq(&ring->syncp);
|
||||
start = !ring ? 0 : u64_stats_fetch_begin(&ring->syncp);
|
||||
for (i = 0; i < size; i++) {
|
||||
i40e_add_one_ethtool_stat(&(*data)[i], ring,
|
||||
&stats[i]);
|
||||
}
|
||||
} while (ring && u64_stats_fetch_retry_irq(&ring->syncp, start));
|
||||
} while (ring && u64_stats_fetch_retry(&ring->syncp, start));
|
||||
|
||||
/* Once we successfully copy the stats in, update the data pointer */
|
||||
*data += size;
|
||||
|
|
|
@ -419,10 +419,10 @@ static void i40e_get_netdev_stats_struct_tx(struct i40e_ring *ring,
|
|||
unsigned int start;
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&ring->syncp);
|
||||
start = u64_stats_fetch_begin(&ring->syncp);
|
||||
packets = ring->stats.packets;
|
||||
bytes = ring->stats.bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&ring->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&ring->syncp, start));
|
||||
|
||||
stats->tx_packets += packets;
|
||||
stats->tx_bytes += bytes;
|
||||
|
@ -472,10 +472,10 @@ static void i40e_get_netdev_stats_struct(struct net_device *netdev,
|
|||
if (!ring)
|
||||
continue;
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&ring->syncp);
|
||||
start = u64_stats_fetch_begin(&ring->syncp);
|
||||
packets = ring->stats.packets;
|
||||
bytes = ring->stats.bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&ring->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&ring->syncp, start));
|
||||
|
||||
stats->rx_packets += packets;
|
||||
stats->rx_bytes += bytes;
|
||||
|
@ -897,10 +897,10 @@ static void i40e_update_vsi_stats(struct i40e_vsi *vsi)
|
|||
continue;
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&p->syncp);
|
||||
start = u64_stats_fetch_begin(&p->syncp);
|
||||
packets = p->stats.packets;
|
||||
bytes = p->stats.bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&p->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&p->syncp, start));
|
||||
tx_b += bytes;
|
||||
tx_p += packets;
|
||||
tx_restart += p->tx_stats.restart_queue;
|
||||
|
@ -915,10 +915,10 @@ static void i40e_update_vsi_stats(struct i40e_vsi *vsi)
|
|||
continue;
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&p->syncp);
|
||||
start = u64_stats_fetch_begin(&p->syncp);
|
||||
packets = p->stats.packets;
|
||||
bytes = p->stats.bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&p->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&p->syncp, start));
|
||||
rx_b += bytes;
|
||||
rx_p += packets;
|
||||
rx_buf += p->rx_stats.alloc_buff_failed;
|
||||
|
@ -935,10 +935,10 @@ static void i40e_update_vsi_stats(struct i40e_vsi *vsi)
|
|||
continue;
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&p->syncp);
|
||||
start = u64_stats_fetch_begin(&p->syncp);
|
||||
packets = p->stats.packets;
|
||||
bytes = p->stats.bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&p->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&p->syncp, start));
|
||||
tx_b += bytes;
|
||||
tx_p += packets;
|
||||
tx_restart += p->tx_stats.restart_queue;
|
||||
|
|
|
@ -147,7 +147,7 @@ __iavf_add_ethtool_stats(u64 **data, void *pointer,
|
|||
* @ring: the ring to copy
|
||||
*
|
||||
* Queue statistics must be copied while protected by
|
||||
* u64_stats_fetch_begin_irq, so we can't directly use iavf_add_ethtool_stats.
|
||||
* u64_stats_fetch_begin, so we can't directly use iavf_add_ethtool_stats.
|
||||
* Assumes that queue stats are defined in iavf_gstrings_queue_stats. If the
|
||||
* ring pointer is null, zero out the queue stat values and update the data
|
||||
* pointer. Otherwise safely copy the stats from the ring into the supplied
|
||||
|
@ -165,14 +165,14 @@ iavf_add_queue_stats(u64 **data, struct iavf_ring *ring)
|
|||
|
||||
/* To avoid invalid statistics values, ensure that we keep retrying
|
||||
* the copy until we get a consistent value according to
|
||||
* u64_stats_fetch_retry_irq. But first, make sure our ring is
|
||||
* u64_stats_fetch_retry. But first, make sure our ring is
|
||||
* non-null before attempting to access its syncp.
|
||||
*/
|
||||
do {
|
||||
start = !ring ? 0 : u64_stats_fetch_begin_irq(&ring->syncp);
|
||||
start = !ring ? 0 : u64_stats_fetch_begin(&ring->syncp);
|
||||
for (i = 0; i < size; i++)
|
||||
iavf_add_one_ethtool_stat(&(*data)[i], ring, &stats[i]);
|
||||
} while (ring && u64_stats_fetch_retry_irq(&ring->syncp, start));
|
||||
} while (ring && u64_stats_fetch_retry(&ring->syncp, start));
|
||||
|
||||
/* Once we successfully copy the stats in, update the data pointer */
|
||||
*data += size;
|
||||
|
|
|
@ -6370,10 +6370,10 @@ ice_fetch_u64_stats_per_ring(struct u64_stats_sync *syncp,
|
|||
unsigned int start;
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(syncp);
|
||||
start = u64_stats_fetch_begin(syncp);
|
||||
*pkts = stats.pkts;
|
||||
*bytes = stats.bytes;
|
||||
} while (u64_stats_fetch_retry_irq(syncp, start));
|
||||
} while (u64_stats_fetch_retry(syncp, start));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -2311,15 +2311,15 @@ static void igb_get_ethtool_stats(struct net_device *netdev,
|
|||
|
||||
ring = adapter->tx_ring[j];
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&ring->tx_syncp);
|
||||
start = u64_stats_fetch_begin(&ring->tx_syncp);
|
||||
data[i] = ring->tx_stats.packets;
|
||||
data[i+1] = ring->tx_stats.bytes;
|
||||
data[i+2] = ring->tx_stats.restart_queue;
|
||||
} while (u64_stats_fetch_retry_irq(&ring->tx_syncp, start));
|
||||
} while (u64_stats_fetch_retry(&ring->tx_syncp, start));
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&ring->tx_syncp2);
|
||||
start = u64_stats_fetch_begin(&ring->tx_syncp2);
|
||||
restart2 = ring->tx_stats.restart_queue2;
|
||||
} while (u64_stats_fetch_retry_irq(&ring->tx_syncp2, start));
|
||||
} while (u64_stats_fetch_retry(&ring->tx_syncp2, start));
|
||||
data[i+2] += restart2;
|
||||
|
||||
i += IGB_TX_QUEUE_STATS_LEN;
|
||||
|
@ -2327,13 +2327,13 @@ static void igb_get_ethtool_stats(struct net_device *netdev,
|
|||
for (j = 0; j < adapter->num_rx_queues; j++) {
|
||||
ring = adapter->rx_ring[j];
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&ring->rx_syncp);
|
||||
start = u64_stats_fetch_begin(&ring->rx_syncp);
|
||||
data[i] = ring->rx_stats.packets;
|
||||
data[i+1] = ring->rx_stats.bytes;
|
||||
data[i+2] = ring->rx_stats.drops;
|
||||
data[i+3] = ring->rx_stats.csum_err;
|
||||
data[i+4] = ring->rx_stats.alloc_failed;
|
||||
} while (u64_stats_fetch_retry_irq(&ring->rx_syncp, start));
|
||||
} while (u64_stats_fetch_retry(&ring->rx_syncp, start));
|
||||
i += IGB_RX_QUEUE_STATS_LEN;
|
||||
}
|
||||
spin_unlock(&adapter->stats64_lock);
|
||||
|
|
|
@ -6632,10 +6632,10 @@ void igb_update_stats(struct igb_adapter *adapter)
|
|||
}
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&ring->rx_syncp);
|
||||
start = u64_stats_fetch_begin(&ring->rx_syncp);
|
||||
_bytes = ring->rx_stats.bytes;
|
||||
_packets = ring->rx_stats.packets;
|
||||
} while (u64_stats_fetch_retry_irq(&ring->rx_syncp, start));
|
||||
} while (u64_stats_fetch_retry(&ring->rx_syncp, start));
|
||||
bytes += _bytes;
|
||||
packets += _packets;
|
||||
}
|
||||
|
@ -6648,10 +6648,10 @@ void igb_update_stats(struct igb_adapter *adapter)
|
|||
for (i = 0; i < adapter->num_tx_queues; i++) {
|
||||
struct igb_ring *ring = adapter->tx_ring[i];
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&ring->tx_syncp);
|
||||
start = u64_stats_fetch_begin(&ring->tx_syncp);
|
||||
_bytes = ring->tx_stats.bytes;
|
||||
_packets = ring->tx_stats.packets;
|
||||
} while (u64_stats_fetch_retry_irq(&ring->tx_syncp, start));
|
||||
} while (u64_stats_fetch_retry(&ring->tx_syncp, start));
|
||||
bytes += _bytes;
|
||||
packets += _packets;
|
||||
}
|
||||
|
|
|
@ -839,15 +839,15 @@ static void igc_ethtool_get_stats(struct net_device *netdev,
|
|||
|
||||
ring = adapter->tx_ring[j];
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&ring->tx_syncp);
|
||||
start = u64_stats_fetch_begin(&ring->tx_syncp);
|
||||
data[i] = ring->tx_stats.packets;
|
||||
data[i + 1] = ring->tx_stats.bytes;
|
||||
data[i + 2] = ring->tx_stats.restart_queue;
|
||||
} while (u64_stats_fetch_retry_irq(&ring->tx_syncp, start));
|
||||
} while (u64_stats_fetch_retry(&ring->tx_syncp, start));
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&ring->tx_syncp2);
|
||||
start = u64_stats_fetch_begin(&ring->tx_syncp2);
|
||||
restart2 = ring->tx_stats.restart_queue2;
|
||||
} while (u64_stats_fetch_retry_irq(&ring->tx_syncp2, start));
|
||||
} while (u64_stats_fetch_retry(&ring->tx_syncp2, start));
|
||||
data[i + 2] += restart2;
|
||||
|
||||
i += IGC_TX_QUEUE_STATS_LEN;
|
||||
|
@ -855,13 +855,13 @@ static void igc_ethtool_get_stats(struct net_device *netdev,
|
|||
for (j = 0; j < adapter->num_rx_queues; j++) {
|
||||
ring = adapter->rx_ring[j];
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&ring->rx_syncp);
|
||||
start = u64_stats_fetch_begin(&ring->rx_syncp);
|
||||
data[i] = ring->rx_stats.packets;
|
||||
data[i + 1] = ring->rx_stats.bytes;
|
||||
data[i + 2] = ring->rx_stats.drops;
|
||||
data[i + 3] = ring->rx_stats.csum_err;
|
||||
data[i + 4] = ring->rx_stats.alloc_failed;
|
||||
} while (u64_stats_fetch_retry_irq(&ring->rx_syncp, start));
|
||||
} while (u64_stats_fetch_retry(&ring->rx_syncp, start));
|
||||
i += IGC_RX_QUEUE_STATS_LEN;
|
||||
}
|
||||
spin_unlock(&adapter->stats64_lock);
|
||||
|
|
|
@ -4682,10 +4682,10 @@ void igc_update_stats(struct igc_adapter *adapter)
|
|||
}
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&ring->rx_syncp);
|
||||
start = u64_stats_fetch_begin(&ring->rx_syncp);
|
||||
_bytes = ring->rx_stats.bytes;
|
||||
_packets = ring->rx_stats.packets;
|
||||
} while (u64_stats_fetch_retry_irq(&ring->rx_syncp, start));
|
||||
} while (u64_stats_fetch_retry(&ring->rx_syncp, start));
|
||||
bytes += _bytes;
|
||||
packets += _packets;
|
||||
}
|
||||
|
@ -4699,10 +4699,10 @@ void igc_update_stats(struct igc_adapter *adapter)
|
|||
struct igc_ring *ring = adapter->tx_ring[i];
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&ring->tx_syncp);
|
||||
start = u64_stats_fetch_begin(&ring->tx_syncp);
|
||||
_bytes = ring->tx_stats.bytes;
|
||||
_packets = ring->tx_stats.packets;
|
||||
} while (u64_stats_fetch_retry_irq(&ring->tx_syncp, start));
|
||||
} while (u64_stats_fetch_retry(&ring->tx_syncp, start));
|
||||
bytes += _bytes;
|
||||
packets += _packets;
|
||||
}
|
||||
|
|
|
@ -1335,10 +1335,10 @@ static void ixgbe_get_ethtool_stats(struct net_device *netdev,
|
|||
}
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&ring->syncp);
|
||||
start = u64_stats_fetch_begin(&ring->syncp);
|
||||
data[i] = ring->stats.packets;
|
||||
data[i+1] = ring->stats.bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&ring->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&ring->syncp, start));
|
||||
i += 2;
|
||||
}
|
||||
for (j = 0; j < IXGBE_NUM_RX_QUEUES; j++) {
|
||||
|
@ -1351,10 +1351,10 @@ static void ixgbe_get_ethtool_stats(struct net_device *netdev,
|
|||
}
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&ring->syncp);
|
||||
start = u64_stats_fetch_begin(&ring->syncp);
|
||||
data[i] = ring->stats.packets;
|
||||
data[i+1] = ring->stats.bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&ring->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&ring->syncp, start));
|
||||
i += 2;
|
||||
}
|
||||
|
||||
|
|
|
@ -9041,10 +9041,10 @@ static void ixgbe_get_ring_stats64(struct rtnl_link_stats64 *stats,
|
|||
|
||||
if (ring) {
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&ring->syncp);
|
||||
start = u64_stats_fetch_begin(&ring->syncp);
|
||||
packets = ring->stats.packets;
|
||||
bytes = ring->stats.bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&ring->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&ring->syncp, start));
|
||||
stats->tx_packets += packets;
|
||||
stats->tx_bytes += bytes;
|
||||
}
|
||||
|
@ -9064,10 +9064,10 @@ static void ixgbe_get_stats64(struct net_device *netdev,
|
|||
|
||||
if (ring) {
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&ring->syncp);
|
||||
start = u64_stats_fetch_begin(&ring->syncp);
|
||||
packets = ring->stats.packets;
|
||||
bytes = ring->stats.bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&ring->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&ring->syncp, start));
|
||||
stats->rx_packets += packets;
|
||||
stats->rx_bytes += bytes;
|
||||
}
|
||||
|
|
|
@ -458,10 +458,10 @@ static void ixgbevf_get_ethtool_stats(struct net_device *netdev,
|
|||
}
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&ring->syncp);
|
||||
start = u64_stats_fetch_begin(&ring->syncp);
|
||||
data[i] = ring->stats.packets;
|
||||
data[i + 1] = ring->stats.bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&ring->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&ring->syncp, start));
|
||||
i += 2;
|
||||
}
|
||||
|
||||
|
@ -475,10 +475,10 @@ static void ixgbevf_get_ethtool_stats(struct net_device *netdev,
|
|||
}
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&ring->syncp);
|
||||
start = u64_stats_fetch_begin(&ring->syncp);
|
||||
data[i] = ring->stats.packets;
|
||||
data[i + 1] = ring->stats.bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&ring->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&ring->syncp, start));
|
||||
i += 2;
|
||||
}
|
||||
|
||||
|
@ -492,10 +492,10 @@ static void ixgbevf_get_ethtool_stats(struct net_device *netdev,
|
|||
}
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&ring->syncp);
|
||||
start = u64_stats_fetch_begin(&ring->syncp);
|
||||
data[i] = ring->stats.packets;
|
||||
data[i + 1] = ring->stats.bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&ring->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&ring->syncp, start));
|
||||
i += 2;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4350,10 +4350,10 @@ static void ixgbevf_get_tx_ring_stats(struct rtnl_link_stats64 *stats,
|
|||
|
||||
if (ring) {
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&ring->syncp);
|
||||
start = u64_stats_fetch_begin(&ring->syncp);
|
||||
bytes = ring->stats.bytes;
|
||||
packets = ring->stats.packets;
|
||||
} while (u64_stats_fetch_retry_irq(&ring->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&ring->syncp, start));
|
||||
stats->tx_bytes += bytes;
|
||||
stats->tx_packets += packets;
|
||||
}
|
||||
|
@ -4376,10 +4376,10 @@ static void ixgbevf_get_stats(struct net_device *netdev,
|
|||
for (i = 0; i < adapter->num_rx_queues; i++) {
|
||||
ring = adapter->rx_ring[i];
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&ring->syncp);
|
||||
start = u64_stats_fetch_begin(&ring->syncp);
|
||||
bytes = ring->stats.bytes;
|
||||
packets = ring->stats.packets;
|
||||
} while (u64_stats_fetch_retry_irq(&ring->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&ring->syncp, start));
|
||||
stats->rx_bytes += bytes;
|
||||
stats->rx_packets += packets;
|
||||
}
|
||||
|
|
|
@ -813,14 +813,14 @@ mvneta_get_stats64(struct net_device *dev,
|
|||
|
||||
cpu_stats = per_cpu_ptr(pp->stats, cpu);
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&cpu_stats->syncp);
|
||||
start = u64_stats_fetch_begin(&cpu_stats->syncp);
|
||||
rx_packets = cpu_stats->es.ps.rx_packets;
|
||||
rx_bytes = cpu_stats->es.ps.rx_bytes;
|
||||
rx_dropped = cpu_stats->rx_dropped;
|
||||
rx_errors = cpu_stats->rx_errors;
|
||||
tx_packets = cpu_stats->es.ps.tx_packets;
|
||||
tx_bytes = cpu_stats->es.ps.tx_bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&cpu_stats->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&cpu_stats->syncp, start));
|
||||
|
||||
stats->rx_packets += rx_packets;
|
||||
stats->rx_bytes += rx_bytes;
|
||||
|
@ -4762,7 +4762,7 @@ mvneta_ethtool_update_pcpu_stats(struct mvneta_port *pp,
|
|||
|
||||
stats = per_cpu_ptr(pp->stats, cpu);
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&stats->syncp);
|
||||
start = u64_stats_fetch_begin(&stats->syncp);
|
||||
skb_alloc_error = stats->es.skb_alloc_error;
|
||||
refill_error = stats->es.refill_error;
|
||||
xdp_redirect = stats->es.ps.xdp_redirect;
|
||||
|
@ -4772,7 +4772,7 @@ mvneta_ethtool_update_pcpu_stats(struct mvneta_port *pp,
|
|||
xdp_xmit_err = stats->es.ps.xdp_xmit_err;
|
||||
xdp_tx = stats->es.ps.xdp_tx;
|
||||
xdp_tx_err = stats->es.ps.xdp_tx_err;
|
||||
} while (u64_stats_fetch_retry_irq(&stats->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&stats->syncp, start));
|
||||
|
||||
es->skb_alloc_error += skb_alloc_error;
|
||||
es->refill_error += refill_error;
|
||||
|
|
|
@ -2008,7 +2008,7 @@ mvpp2_get_xdp_stats(struct mvpp2_port *port, struct mvpp2_pcpu_stats *xdp_stats)
|
|||
|
||||
cpu_stats = per_cpu_ptr(port->stats, cpu);
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&cpu_stats->syncp);
|
||||
start = u64_stats_fetch_begin(&cpu_stats->syncp);
|
||||
xdp_redirect = cpu_stats->xdp_redirect;
|
||||
xdp_pass = cpu_stats->xdp_pass;
|
||||
xdp_drop = cpu_stats->xdp_drop;
|
||||
|
@ -2016,7 +2016,7 @@ mvpp2_get_xdp_stats(struct mvpp2_port *port, struct mvpp2_pcpu_stats *xdp_stats)
|
|||
xdp_xmit_err = cpu_stats->xdp_xmit_err;
|
||||
xdp_tx = cpu_stats->xdp_tx;
|
||||
xdp_tx_err = cpu_stats->xdp_tx_err;
|
||||
} while (u64_stats_fetch_retry_irq(&cpu_stats->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&cpu_stats->syncp, start));
|
||||
|
||||
xdp_stats->xdp_redirect += xdp_redirect;
|
||||
xdp_stats->xdp_pass += xdp_pass;
|
||||
|
@ -5115,12 +5115,12 @@ mvpp2_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
|
|||
|
||||
cpu_stats = per_cpu_ptr(port->stats, cpu);
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&cpu_stats->syncp);
|
||||
start = u64_stats_fetch_begin(&cpu_stats->syncp);
|
||||
rx_packets = cpu_stats->rx_packets;
|
||||
rx_bytes = cpu_stats->rx_bytes;
|
||||
tx_packets = cpu_stats->tx_packets;
|
||||
tx_bytes = cpu_stats->tx_bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&cpu_stats->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&cpu_stats->syncp, start));
|
||||
|
||||
stats->rx_packets += rx_packets;
|
||||
stats->rx_bytes += rx_bytes;
|
||||
|
|
|
@ -3894,19 +3894,19 @@ static void sky2_get_stats(struct net_device *dev,
|
|||
u64 _bytes, _packets;
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&sky2->rx_stats.syncp);
|
||||
start = u64_stats_fetch_begin(&sky2->rx_stats.syncp);
|
||||
_bytes = sky2->rx_stats.bytes;
|
||||
_packets = sky2->rx_stats.packets;
|
||||
} while (u64_stats_fetch_retry_irq(&sky2->rx_stats.syncp, start));
|
||||
} while (u64_stats_fetch_retry(&sky2->rx_stats.syncp, start));
|
||||
|
||||
stats->rx_packets = _packets;
|
||||
stats->rx_bytes = _bytes;
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&sky2->tx_stats.syncp);
|
||||
start = u64_stats_fetch_begin(&sky2->tx_stats.syncp);
|
||||
_bytes = sky2->tx_stats.bytes;
|
||||
_packets = sky2->tx_stats.packets;
|
||||
} while (u64_stats_fetch_retry_irq(&sky2->tx_stats.syncp, start));
|
||||
} while (u64_stats_fetch_retry(&sky2->tx_stats.syncp, start));
|
||||
|
||||
stats->tx_packets = _packets;
|
||||
stats->tx_bytes = _bytes;
|
||||
|
|
|
@ -865,7 +865,7 @@ static void mtk_get_stats64(struct net_device *dev,
|
|||
}
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&hw_stats->syncp);
|
||||
start = u64_stats_fetch_begin(&hw_stats->syncp);
|
||||
storage->rx_packets = hw_stats->rx_packets;
|
||||
storage->tx_packets = hw_stats->tx_packets;
|
||||
storage->rx_bytes = hw_stats->rx_bytes;
|
||||
|
@ -877,7 +877,7 @@ static void mtk_get_stats64(struct net_device *dev,
|
|||
storage->rx_crc_errors = hw_stats->rx_fcs_errors;
|
||||
storage->rx_errors = hw_stats->rx_checksum_errors;
|
||||
storage->tx_aborted_errors = hw_stats->tx_skip;
|
||||
} while (u64_stats_fetch_retry_irq(&hw_stats->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&hw_stats->syncp, start));
|
||||
|
||||
storage->tx_errors = dev->stats.tx_errors;
|
||||
storage->rx_dropped = dev->stats.rx_dropped;
|
||||
|
@ -3684,13 +3684,13 @@ static void mtk_get_ethtool_stats(struct net_device *dev,
|
|||
|
||||
do {
|
||||
data_dst = data;
|
||||
start = u64_stats_fetch_begin_irq(&hwstats->syncp);
|
||||
start = u64_stats_fetch_begin(&hwstats->syncp);
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(mtk_ethtool_stats); i++)
|
||||
*data_dst++ = *(data_src + mtk_ethtool_stats[i].offset);
|
||||
if (mtk_page_pool_enabled(mac->hw))
|
||||
mtk_ethtool_pp_stats(mac->hw, data_dst);
|
||||
} while (u64_stats_fetch_retry_irq(&hwstats->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&hwstats->syncp, start));
|
||||
}
|
||||
|
||||
static int mtk_get_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd,
|
||||
|
|
|
@ -827,12 +827,12 @@ mlxsw_sp_port_get_sw_stats64(const struct net_device *dev,
|
|||
for_each_possible_cpu(i) {
|
||||
p = per_cpu_ptr(mlxsw_sp_port->pcpu_stats, i);
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&p->syncp);
|
||||
start = u64_stats_fetch_begin(&p->syncp);
|
||||
rx_packets = p->rx_packets;
|
||||
rx_bytes = p->rx_bytes;
|
||||
tx_packets = p->tx_packets;
|
||||
tx_bytes = p->tx_bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&p->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&p->syncp, start));
|
||||
|
||||
stats->rx_packets += rx_packets;
|
||||
stats->rx_bytes += rx_bytes;
|
||||
|
|
|
@ -315,10 +315,10 @@ static void mana_get_stats64(struct net_device *ndev,
|
|||
rx_stats = &apc->rxqs[q]->stats;
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&rx_stats->syncp);
|
||||
start = u64_stats_fetch_begin(&rx_stats->syncp);
|
||||
packets = rx_stats->packets;
|
||||
bytes = rx_stats->bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&rx_stats->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&rx_stats->syncp, start));
|
||||
|
||||
st->rx_packets += packets;
|
||||
st->rx_bytes += bytes;
|
||||
|
@ -328,10 +328,10 @@ static void mana_get_stats64(struct net_device *ndev,
|
|||
tx_stats = &apc->tx_qp[q].txq.stats;
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&tx_stats->syncp);
|
||||
start = u64_stats_fetch_begin(&tx_stats->syncp);
|
||||
packets = tx_stats->packets;
|
||||
bytes = tx_stats->bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&tx_stats->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&tx_stats->syncp, start));
|
||||
|
||||
st->tx_packets += packets;
|
||||
st->tx_bytes += bytes;
|
||||
|
|
|
@ -90,13 +90,13 @@ static void mana_get_ethtool_stats(struct net_device *ndev,
|
|||
rx_stats = &apc->rxqs[q]->stats;
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&rx_stats->syncp);
|
||||
start = u64_stats_fetch_begin(&rx_stats->syncp);
|
||||
packets = rx_stats->packets;
|
||||
bytes = rx_stats->bytes;
|
||||
xdp_drop = rx_stats->xdp_drop;
|
||||
xdp_tx = rx_stats->xdp_tx;
|
||||
xdp_redirect = rx_stats->xdp_redirect;
|
||||
} while (u64_stats_fetch_retry_irq(&rx_stats->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&rx_stats->syncp, start));
|
||||
|
||||
data[i++] = packets;
|
||||
data[i++] = bytes;
|
||||
|
@ -109,11 +109,11 @@ static void mana_get_ethtool_stats(struct net_device *ndev,
|
|||
tx_stats = &apc->tx_qp[q].txq.stats;
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&tx_stats->syncp);
|
||||
start = u64_stats_fetch_begin(&tx_stats->syncp);
|
||||
packets = tx_stats->packets;
|
||||
bytes = tx_stats->bytes;
|
||||
xdp_xmit = tx_stats->xdp_xmit;
|
||||
} while (u64_stats_fetch_retry_irq(&tx_stats->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&tx_stats->syncp, start));
|
||||
|
||||
data[i++] = packets;
|
||||
data[i++] = bytes;
|
||||
|
|
|
@ -1631,21 +1631,21 @@ static void nfp_net_stat64(struct net_device *netdev,
|
|||
unsigned int start;
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&r_vec->rx_sync);
|
||||
start = u64_stats_fetch_begin(&r_vec->rx_sync);
|
||||
data[0] = r_vec->rx_pkts;
|
||||
data[1] = r_vec->rx_bytes;
|
||||
data[2] = r_vec->rx_drops;
|
||||
} while (u64_stats_fetch_retry_irq(&r_vec->rx_sync, start));
|
||||
} while (u64_stats_fetch_retry(&r_vec->rx_sync, start));
|
||||
stats->rx_packets += data[0];
|
||||
stats->rx_bytes += data[1];
|
||||
stats->rx_dropped += data[2];
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&r_vec->tx_sync);
|
||||
start = u64_stats_fetch_begin(&r_vec->tx_sync);
|
||||
data[0] = r_vec->tx_pkts;
|
||||
data[1] = r_vec->tx_bytes;
|
||||
data[2] = r_vec->tx_errors;
|
||||
} while (u64_stats_fetch_retry_irq(&r_vec->tx_sync, start));
|
||||
} while (u64_stats_fetch_retry(&r_vec->tx_sync, start));
|
||||
stats->tx_packets += data[0];
|
||||
stats->tx_bytes += data[1];
|
||||
stats->tx_errors += data[2];
|
||||
|
|
|
@ -686,7 +686,7 @@ static u64 *nfp_vnic_get_sw_stats(struct net_device *netdev, u64 *data)
|
|||
unsigned int start;
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&nn->r_vecs[i].rx_sync);
|
||||
start = u64_stats_fetch_begin(&nn->r_vecs[i].rx_sync);
|
||||
data[0] = nn->r_vecs[i].rx_pkts;
|
||||
tmp[0] = nn->r_vecs[i].hw_csum_rx_ok;
|
||||
tmp[1] = nn->r_vecs[i].hw_csum_rx_inner_ok;
|
||||
|
@ -694,10 +694,10 @@ static u64 *nfp_vnic_get_sw_stats(struct net_device *netdev, u64 *data)
|
|||
tmp[3] = nn->r_vecs[i].hw_csum_rx_error;
|
||||
tmp[4] = nn->r_vecs[i].rx_replace_buf_alloc_fail;
|
||||
tmp[5] = nn->r_vecs[i].hw_tls_rx;
|
||||
} while (u64_stats_fetch_retry_irq(&nn->r_vecs[i].rx_sync, start));
|
||||
} while (u64_stats_fetch_retry(&nn->r_vecs[i].rx_sync, start));
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&nn->r_vecs[i].tx_sync);
|
||||
start = u64_stats_fetch_begin(&nn->r_vecs[i].tx_sync);
|
||||
data[1] = nn->r_vecs[i].tx_pkts;
|
||||
data[2] = nn->r_vecs[i].tx_busy;
|
||||
tmp[6] = nn->r_vecs[i].hw_csum_tx;
|
||||
|
@ -707,7 +707,7 @@ static u64 *nfp_vnic_get_sw_stats(struct net_device *netdev, u64 *data)
|
|||
tmp[10] = nn->r_vecs[i].hw_tls_tx;
|
||||
tmp[11] = nn->r_vecs[i].tls_tx_fallback;
|
||||
tmp[12] = nn->r_vecs[i].tls_tx_no_fallback;
|
||||
} while (u64_stats_fetch_retry_irq(&nn->r_vecs[i].tx_sync, start));
|
||||
} while (u64_stats_fetch_retry(&nn->r_vecs[i].tx_sync, start));
|
||||
|
||||
data += NN_RVEC_PER_Q_STATS;
|
||||
|
||||
|
|
|
@ -134,13 +134,13 @@ nfp_repr_get_host_stats64(const struct net_device *netdev,
|
|||
|
||||
repr_stats = per_cpu_ptr(repr->stats, i);
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&repr_stats->syncp);
|
||||
start = u64_stats_fetch_begin(&repr_stats->syncp);
|
||||
tbytes = repr_stats->tx_bytes;
|
||||
tpkts = repr_stats->tx_packets;
|
||||
tdrops = repr_stats->tx_drops;
|
||||
rbytes = repr_stats->rx_bytes;
|
||||
rpkts = repr_stats->rx_packets;
|
||||
} while (u64_stats_fetch_retry_irq(&repr_stats->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&repr_stats->syncp, start));
|
||||
|
||||
stats->tx_bytes += tbytes;
|
||||
stats->tx_packets += tpkts;
|
||||
|
|
|
@ -1734,12 +1734,12 @@ static void nv_get_stats(int cpu, struct fe_priv *np,
|
|||
u64 tx_packets, tx_bytes, tx_dropped;
|
||||
|
||||
do {
|
||||
syncp_start = u64_stats_fetch_begin_irq(&np->swstats_rx_syncp);
|
||||
syncp_start = u64_stats_fetch_begin(&np->swstats_rx_syncp);
|
||||
rx_packets = src->stat_rx_packets;
|
||||
rx_bytes = src->stat_rx_bytes;
|
||||
rx_dropped = src->stat_rx_dropped;
|
||||
rx_missed_errors = src->stat_rx_missed_errors;
|
||||
} while (u64_stats_fetch_retry_irq(&np->swstats_rx_syncp, syncp_start));
|
||||
} while (u64_stats_fetch_retry(&np->swstats_rx_syncp, syncp_start));
|
||||
|
||||
storage->rx_packets += rx_packets;
|
||||
storage->rx_bytes += rx_bytes;
|
||||
|
@ -1747,11 +1747,11 @@ static void nv_get_stats(int cpu, struct fe_priv *np,
|
|||
storage->rx_missed_errors += rx_missed_errors;
|
||||
|
||||
do {
|
||||
syncp_start = u64_stats_fetch_begin_irq(&np->swstats_tx_syncp);
|
||||
syncp_start = u64_stats_fetch_begin(&np->swstats_tx_syncp);
|
||||
tx_packets = src->stat_tx_packets;
|
||||
tx_bytes = src->stat_tx_bytes;
|
||||
tx_dropped = src->stat_tx_dropped;
|
||||
} while (u64_stats_fetch_retry_irq(&np->swstats_tx_syncp, syncp_start));
|
||||
} while (u64_stats_fetch_retry(&np->swstats_tx_syncp, syncp_start));
|
||||
|
||||
storage->tx_packets += tx_packets;
|
||||
storage->tx_bytes += tx_bytes;
|
||||
|
|
|
@ -135,9 +135,9 @@ static void rmnet_get_stats64(struct net_device *dev,
|
|||
pcpu_ptr = per_cpu_ptr(priv->pcpu_stats, cpu);
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&pcpu_ptr->syncp);
|
||||
start = u64_stats_fetch_begin(&pcpu_ptr->syncp);
|
||||
snapshot = pcpu_ptr->stats; /* struct assignment */
|
||||
} while (u64_stats_fetch_retry_irq(&pcpu_ptr->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&pcpu_ptr->syncp, start));
|
||||
|
||||
total_stats.rx_pkts += snapshot.rx_pkts;
|
||||
total_stats.rx_bytes += snapshot.rx_bytes;
|
||||
|
|
|
@ -2532,16 +2532,16 @@ rtl8139_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
|
|||
netdev_stats_to_stats64(stats, &dev->stats);
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&tp->rx_stats.syncp);
|
||||
start = u64_stats_fetch_begin(&tp->rx_stats.syncp);
|
||||
stats->rx_packets = tp->rx_stats.packets;
|
||||
stats->rx_bytes = tp->rx_stats.bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&tp->rx_stats.syncp, start));
|
||||
} while (u64_stats_fetch_retry(&tp->rx_stats.syncp, start));
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&tp->tx_stats.syncp);
|
||||
start = u64_stats_fetch_begin(&tp->tx_stats.syncp);
|
||||
stats->tx_packets = tp->tx_stats.packets;
|
||||
stats->tx_bytes = tp->tx_stats.bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&tp->tx_stats.syncp, start));
|
||||
} while (u64_stats_fetch_retry(&tp->tx_stats.syncp, start));
|
||||
}
|
||||
|
||||
/* Set or clear the multicast filter for this adaptor.
|
||||
|
|
|
@ -1508,16 +1508,16 @@ static void ave_get_stats64(struct net_device *ndev,
|
|||
unsigned int start;
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&priv->stats_rx.syncp);
|
||||
start = u64_stats_fetch_begin(&priv->stats_rx.syncp);
|
||||
stats->rx_packets = priv->stats_rx.packets;
|
||||
stats->rx_bytes = priv->stats_rx.bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&priv->stats_rx.syncp, start));
|
||||
} while (u64_stats_fetch_retry(&priv->stats_rx.syncp, start));
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&priv->stats_tx.syncp);
|
||||
start = u64_stats_fetch_begin(&priv->stats_tx.syncp);
|
||||
stats->tx_packets = priv->stats_tx.packets;
|
||||
stats->tx_bytes = priv->stats_tx.bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&priv->stats_tx.syncp, start));
|
||||
} while (u64_stats_fetch_retry(&priv->stats_tx.syncp, start));
|
||||
|
||||
stats->rx_errors = priv->stats_rx.errors;
|
||||
stats->tx_errors = priv->stats_tx.errors;
|
||||
|
|
|
@ -1362,12 +1362,12 @@ static void am65_cpsw_nuss_ndo_get_stats(struct net_device *dev,
|
|||
|
||||
cpu_stats = per_cpu_ptr(ndev_priv->stats, cpu);
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&cpu_stats->syncp);
|
||||
start = u64_stats_fetch_begin(&cpu_stats->syncp);
|
||||
rx_packets = cpu_stats->rx_packets;
|
||||
rx_bytes = cpu_stats->rx_bytes;
|
||||
tx_packets = cpu_stats->tx_packets;
|
||||
tx_bytes = cpu_stats->tx_bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&cpu_stats->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&cpu_stats->syncp, start));
|
||||
|
||||
stats->rx_packets += rx_packets;
|
||||
stats->rx_bytes += rx_bytes;
|
||||
|
|
|
@ -1916,16 +1916,16 @@ netcp_get_stats(struct net_device *ndev, struct rtnl_link_stats64 *stats)
|
|||
unsigned int start;
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&p->syncp_rx);
|
||||
start = u64_stats_fetch_begin(&p->syncp_rx);
|
||||
rxpackets = p->rx_packets;
|
||||
rxbytes = p->rx_bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&p->syncp_rx, start));
|
||||
} while (u64_stats_fetch_retry(&p->syncp_rx, start));
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&p->syncp_tx);
|
||||
start = u64_stats_fetch_begin(&p->syncp_tx);
|
||||
txpackets = p->tx_packets;
|
||||
txbytes = p->tx_bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&p->syncp_tx, start));
|
||||
} while (u64_stats_fetch_retry(&p->syncp_tx, start));
|
||||
|
||||
stats->rx_packets = rxpackets;
|
||||
stats->rx_bytes = rxbytes;
|
||||
|
|
|
@ -2217,16 +2217,16 @@ rhine_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
|
|||
netdev_stats_to_stats64(stats, &dev->stats);
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&rp->rx_stats.syncp);
|
||||
start = u64_stats_fetch_begin(&rp->rx_stats.syncp);
|
||||
stats->rx_packets = rp->rx_stats.packets;
|
||||
stats->rx_bytes = rp->rx_stats.bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&rp->rx_stats.syncp, start));
|
||||
} while (u64_stats_fetch_retry(&rp->rx_stats.syncp, start));
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&rp->tx_stats.syncp);
|
||||
start = u64_stats_fetch_begin(&rp->tx_stats.syncp);
|
||||
stats->tx_packets = rp->tx_stats.packets;
|
||||
stats->tx_bytes = rp->tx_stats.bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&rp->tx_stats.syncp, start));
|
||||
} while (u64_stats_fetch_retry(&rp->tx_stats.syncp, start));
|
||||
}
|
||||
|
||||
static void rhine_set_rx_mode(struct net_device *dev)
|
||||
|
|
|
@ -1305,16 +1305,16 @@ axienet_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
|
|||
netdev_stats_to_stats64(stats, &dev->stats);
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&lp->rx_stat_sync);
|
||||
start = u64_stats_fetch_begin(&lp->rx_stat_sync);
|
||||
stats->rx_packets = u64_stats_read(&lp->rx_packets);
|
||||
stats->rx_bytes = u64_stats_read(&lp->rx_bytes);
|
||||
} while (u64_stats_fetch_retry_irq(&lp->rx_stat_sync, start));
|
||||
} while (u64_stats_fetch_retry(&lp->rx_stat_sync, start));
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&lp->tx_stat_sync);
|
||||
start = u64_stats_fetch_begin(&lp->tx_stat_sync);
|
||||
stats->tx_packets = u64_stats_read(&lp->tx_packets);
|
||||
stats->tx_bytes = u64_stats_read(&lp->tx_bytes);
|
||||
} while (u64_stats_fetch_retry_irq(&lp->tx_stat_sync, start));
|
||||
} while (u64_stats_fetch_retry(&lp->tx_stat_sync, start));
|
||||
}
|
||||
|
||||
static const struct net_device_ops axienet_netdev_ops = {
|
||||
|
|
|
@ -1264,12 +1264,12 @@ static void netvsc_get_vf_stats(struct net_device *net,
|
|||
unsigned int start;
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&stats->syncp);
|
||||
start = u64_stats_fetch_begin(&stats->syncp);
|
||||
rx_packets = stats->rx_packets;
|
||||
tx_packets = stats->tx_packets;
|
||||
rx_bytes = stats->rx_bytes;
|
||||
tx_bytes = stats->tx_bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&stats->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&stats->syncp, start));
|
||||
|
||||
tot->rx_packets += rx_packets;
|
||||
tot->tx_packets += tx_packets;
|
||||
|
@ -1294,12 +1294,12 @@ static void netvsc_get_pcpu_stats(struct net_device *net,
|
|||
unsigned int start;
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&stats->syncp);
|
||||
start = u64_stats_fetch_begin(&stats->syncp);
|
||||
this_tot->vf_rx_packets = stats->rx_packets;
|
||||
this_tot->vf_tx_packets = stats->tx_packets;
|
||||
this_tot->vf_rx_bytes = stats->rx_bytes;
|
||||
this_tot->vf_tx_bytes = stats->tx_bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&stats->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&stats->syncp, start));
|
||||
this_tot->rx_packets = this_tot->vf_rx_packets;
|
||||
this_tot->tx_packets = this_tot->vf_tx_packets;
|
||||
this_tot->rx_bytes = this_tot->vf_rx_bytes;
|
||||
|
@ -1318,20 +1318,20 @@ static void netvsc_get_pcpu_stats(struct net_device *net,
|
|||
|
||||
tx_stats = &nvchan->tx_stats;
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&tx_stats->syncp);
|
||||
start = u64_stats_fetch_begin(&tx_stats->syncp);
|
||||
packets = tx_stats->packets;
|
||||
bytes = tx_stats->bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&tx_stats->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&tx_stats->syncp, start));
|
||||
|
||||
this_tot->tx_bytes += bytes;
|
||||
this_tot->tx_packets += packets;
|
||||
|
||||
rx_stats = &nvchan->rx_stats;
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&rx_stats->syncp);
|
||||
start = u64_stats_fetch_begin(&rx_stats->syncp);
|
||||
packets = rx_stats->packets;
|
||||
bytes = rx_stats->bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&rx_stats->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&rx_stats->syncp, start));
|
||||
|
||||
this_tot->rx_bytes += bytes;
|
||||
this_tot->rx_packets += packets;
|
||||
|
@ -1370,21 +1370,21 @@ static void netvsc_get_stats64(struct net_device *net,
|
|||
|
||||
tx_stats = &nvchan->tx_stats;
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&tx_stats->syncp);
|
||||
start = u64_stats_fetch_begin(&tx_stats->syncp);
|
||||
packets = tx_stats->packets;
|
||||
bytes = tx_stats->bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&tx_stats->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&tx_stats->syncp, start));
|
||||
|
||||
t->tx_bytes += bytes;
|
||||
t->tx_packets += packets;
|
||||
|
||||
rx_stats = &nvchan->rx_stats;
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&rx_stats->syncp);
|
||||
start = u64_stats_fetch_begin(&rx_stats->syncp);
|
||||
packets = rx_stats->packets;
|
||||
bytes = rx_stats->bytes;
|
||||
multicast = rx_stats->multicast + rx_stats->broadcast;
|
||||
} while (u64_stats_fetch_retry_irq(&rx_stats->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&rx_stats->syncp, start));
|
||||
|
||||
t->rx_bytes += bytes;
|
||||
t->rx_packets += packets;
|
||||
|
@ -1527,24 +1527,24 @@ static void netvsc_get_ethtool_stats(struct net_device *dev,
|
|||
tx_stats = &nvdev->chan_table[j].tx_stats;
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&tx_stats->syncp);
|
||||
start = u64_stats_fetch_begin(&tx_stats->syncp);
|
||||
packets = tx_stats->packets;
|
||||
bytes = tx_stats->bytes;
|
||||
xdp_xmit = tx_stats->xdp_xmit;
|
||||
} while (u64_stats_fetch_retry_irq(&tx_stats->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&tx_stats->syncp, start));
|
||||
data[i++] = packets;
|
||||
data[i++] = bytes;
|
||||
data[i++] = xdp_xmit;
|
||||
|
||||
rx_stats = &nvdev->chan_table[j].rx_stats;
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&rx_stats->syncp);
|
||||
start = u64_stats_fetch_begin(&rx_stats->syncp);
|
||||
packets = rx_stats->packets;
|
||||
bytes = rx_stats->bytes;
|
||||
xdp_drop = rx_stats->xdp_drop;
|
||||
xdp_redirect = rx_stats->xdp_redirect;
|
||||
xdp_tx = rx_stats->xdp_tx;
|
||||
} while (u64_stats_fetch_retry_irq(&rx_stats->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&rx_stats->syncp, start));
|
||||
data[i++] = packets;
|
||||
data[i++] = bytes;
|
||||
data[i++] = xdp_drop;
|
||||
|
|
|
@ -162,18 +162,18 @@ static void ifb_stats64(struct net_device *dev,
|
|||
|
||||
for (i = 0; i < dev->num_tx_queues; i++,txp++) {
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&txp->rx_stats.sync);
|
||||
start = u64_stats_fetch_begin(&txp->rx_stats.sync);
|
||||
packets = txp->rx_stats.packets;
|
||||
bytes = txp->rx_stats.bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&txp->rx_stats.sync, start));
|
||||
} while (u64_stats_fetch_retry(&txp->rx_stats.sync, start));
|
||||
stats->rx_packets += packets;
|
||||
stats->rx_bytes += bytes;
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&txp->tx_stats.sync);
|
||||
start = u64_stats_fetch_begin(&txp->tx_stats.sync);
|
||||
packets = txp->tx_stats.packets;
|
||||
bytes = txp->tx_stats.bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&txp->tx_stats.sync, start));
|
||||
} while (u64_stats_fetch_retry(&txp->tx_stats.sync, start));
|
||||
stats->tx_packets += packets;
|
||||
stats->tx_bytes += bytes;
|
||||
}
|
||||
|
@ -245,12 +245,12 @@ static void ifb_fill_stats_data(u64 **data,
|
|||
int j;
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&q_stats->sync);
|
||||
start = u64_stats_fetch_begin(&q_stats->sync);
|
||||
for (j = 0; j < IFB_Q_STATS_LEN; j++) {
|
||||
offset = ifb_q_stats_desc[j].offset;
|
||||
(*data)[j] = *(u64 *)(stats_base + offset);
|
||||
}
|
||||
} while (u64_stats_fetch_retry_irq(&q_stats->sync, start));
|
||||
} while (u64_stats_fetch_retry(&q_stats->sync, start));
|
||||
|
||||
*data += IFB_Q_STATS_LEN;
|
||||
}
|
||||
|
|
|
@ -299,13 +299,13 @@ static void ipvlan_get_stats64(struct net_device *dev,
|
|||
for_each_possible_cpu(idx) {
|
||||
pcptr = per_cpu_ptr(ipvlan->pcpu_stats, idx);
|
||||
do {
|
||||
strt= u64_stats_fetch_begin_irq(&pcptr->syncp);
|
||||
strt = u64_stats_fetch_begin(&pcptr->syncp);
|
||||
rx_pkts = u64_stats_read(&pcptr->rx_pkts);
|
||||
rx_bytes = u64_stats_read(&pcptr->rx_bytes);
|
||||
rx_mcast = u64_stats_read(&pcptr->rx_mcast);
|
||||
tx_pkts = u64_stats_read(&pcptr->tx_pkts);
|
||||
tx_bytes = u64_stats_read(&pcptr->tx_bytes);
|
||||
} while (u64_stats_fetch_retry_irq(&pcptr->syncp,
|
||||
} while (u64_stats_fetch_retry(&pcptr->syncp,
|
||||
strt));
|
||||
|
||||
s->rx_packets += rx_pkts;
|
||||
|
|
|
@ -106,10 +106,10 @@ void dev_lstats_read(struct net_device *dev, u64 *packets, u64 *bytes)
|
|||
|
||||
lb_stats = per_cpu_ptr(dev->lstats, i);
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&lb_stats->syncp);
|
||||
start = u64_stats_fetch_begin(&lb_stats->syncp);
|
||||
tpackets = u64_stats_read(&lb_stats->packets);
|
||||
tbytes = u64_stats_read(&lb_stats->bytes);
|
||||
} while (u64_stats_fetch_retry_irq(&lb_stats->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&lb_stats->syncp, start));
|
||||
*bytes += tbytes;
|
||||
*packets += tpackets;
|
||||
}
|
||||
|
|
|
@ -2795,9 +2795,9 @@ static void get_rx_sc_stats(struct net_device *dev,
|
|||
|
||||
stats = per_cpu_ptr(rx_sc->stats, cpu);
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&stats->syncp);
|
||||
start = u64_stats_fetch_begin(&stats->syncp);
|
||||
memcpy(&tmp, &stats->stats, sizeof(tmp));
|
||||
} while (u64_stats_fetch_retry_irq(&stats->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&stats->syncp, start));
|
||||
|
||||
sum->InOctetsValidated += tmp.InOctetsValidated;
|
||||
sum->InOctetsDecrypted += tmp.InOctetsDecrypted;
|
||||
|
@ -2876,9 +2876,9 @@ static void get_tx_sc_stats(struct net_device *dev,
|
|||
|
||||
stats = per_cpu_ptr(macsec_priv(dev)->secy.tx_sc.stats, cpu);
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&stats->syncp);
|
||||
start = u64_stats_fetch_begin(&stats->syncp);
|
||||
memcpy(&tmp, &stats->stats, sizeof(tmp));
|
||||
} while (u64_stats_fetch_retry_irq(&stats->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&stats->syncp, start));
|
||||
|
||||
sum->OutPktsProtected += tmp.OutPktsProtected;
|
||||
sum->OutPktsEncrypted += tmp.OutPktsEncrypted;
|
||||
|
@ -2932,9 +2932,9 @@ static void get_secy_stats(struct net_device *dev, struct macsec_dev_stats *sum)
|
|||
|
||||
stats = per_cpu_ptr(macsec_priv(dev)->stats, cpu);
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&stats->syncp);
|
||||
start = u64_stats_fetch_begin(&stats->syncp);
|
||||
memcpy(&tmp, &stats->stats, sizeof(tmp));
|
||||
} while (u64_stats_fetch_retry_irq(&stats->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&stats->syncp, start));
|
||||
|
||||
sum->OutPktsUntagged += tmp.OutPktsUntagged;
|
||||
sum->InPktsUntagged += tmp.InPktsUntagged;
|
||||
|
|
|
@ -948,13 +948,13 @@ static void macvlan_dev_get_stats64(struct net_device *dev,
|
|||
for_each_possible_cpu(i) {
|
||||
p = per_cpu_ptr(vlan->pcpu_stats, i);
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&p->syncp);
|
||||
start = u64_stats_fetch_begin(&p->syncp);
|
||||
rx_packets = u64_stats_read(&p->rx_packets);
|
||||
rx_bytes = u64_stats_read(&p->rx_bytes);
|
||||
rx_multicast = u64_stats_read(&p->rx_multicast);
|
||||
tx_packets = u64_stats_read(&p->tx_packets);
|
||||
tx_bytes = u64_stats_read(&p->tx_bytes);
|
||||
} while (u64_stats_fetch_retry_irq(&p->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&p->syncp, start));
|
||||
|
||||
stats->rx_packets += rx_packets;
|
||||
stats->rx_bytes += rx_bytes;
|
||||
|
|
|
@ -104,19 +104,19 @@ static void mhi_ndo_get_stats64(struct net_device *ndev,
|
|||
unsigned int start;
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&mhi_netdev->stats.rx_syncp);
|
||||
start = u64_stats_fetch_begin(&mhi_netdev->stats.rx_syncp);
|
||||
stats->rx_packets = u64_stats_read(&mhi_netdev->stats.rx_packets);
|
||||
stats->rx_bytes = u64_stats_read(&mhi_netdev->stats.rx_bytes);
|
||||
stats->rx_errors = u64_stats_read(&mhi_netdev->stats.rx_errors);
|
||||
} while (u64_stats_fetch_retry_irq(&mhi_netdev->stats.rx_syncp, start));
|
||||
} while (u64_stats_fetch_retry(&mhi_netdev->stats.rx_syncp, start));
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&mhi_netdev->stats.tx_syncp);
|
||||
start = u64_stats_fetch_begin(&mhi_netdev->stats.tx_syncp);
|
||||
stats->tx_packets = u64_stats_read(&mhi_netdev->stats.tx_packets);
|
||||
stats->tx_bytes = u64_stats_read(&mhi_netdev->stats.tx_bytes);
|
||||
stats->tx_errors = u64_stats_read(&mhi_netdev->stats.tx_errors);
|
||||
stats->tx_dropped = u64_stats_read(&mhi_netdev->stats.tx_dropped);
|
||||
} while (u64_stats_fetch_retry_irq(&mhi_netdev->stats.tx_syncp, start));
|
||||
} while (u64_stats_fetch_retry(&mhi_netdev->stats.tx_syncp, start));
|
||||
}
|
||||
|
||||
static const struct net_device_ops mhi_netdev_ops = {
|
||||
|
|
|
@ -67,10 +67,10 @@ nsim_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
|
|||
unsigned int start;
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&ns->syncp);
|
||||
start = u64_stats_fetch_begin(&ns->syncp);
|
||||
stats->tx_bytes = ns->tx_bytes;
|
||||
stats->tx_packets = ns->tx_packets;
|
||||
} while (u64_stats_fetch_retry_irq(&ns->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&ns->syncp, start));
|
||||
}
|
||||
|
||||
static int
|
||||
|
|
|
@ -1865,13 +1865,13 @@ team_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats)
|
|||
for_each_possible_cpu(i) {
|
||||
p = per_cpu_ptr(team->pcpu_stats, i);
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&p->syncp);
|
||||
start = u64_stats_fetch_begin(&p->syncp);
|
||||
rx_packets = u64_stats_read(&p->rx_packets);
|
||||
rx_bytes = u64_stats_read(&p->rx_bytes);
|
||||
rx_multicast = u64_stats_read(&p->rx_multicast);
|
||||
tx_packets = u64_stats_read(&p->tx_packets);
|
||||
tx_bytes = u64_stats_read(&p->tx_bytes);
|
||||
} while (u64_stats_fetch_retry_irq(&p->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&p->syncp, start));
|
||||
|
||||
stats->rx_packets += rx_packets;
|
||||
stats->rx_bytes += rx_bytes;
|
||||
|
|
|
@ -466,9 +466,9 @@ static void __lb_one_cpu_stats_add(struct lb_stats *acc_stats,
|
|||
struct lb_stats tmp;
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(syncp);
|
||||
start = u64_stats_fetch_begin(syncp);
|
||||
tmp.tx_bytes = cpu_stats->tx_bytes;
|
||||
} while (u64_stats_fetch_retry_irq(syncp, start));
|
||||
} while (u64_stats_fetch_retry(syncp, start));
|
||||
acc_stats->tx_bytes += tmp.tx_bytes;
|
||||
}
|
||||
|
||||
|
|
|
@ -182,12 +182,12 @@ static void veth_get_ethtool_stats(struct net_device *dev,
|
|||
size_t offset;
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&rq_stats->syncp);
|
||||
start = u64_stats_fetch_begin(&rq_stats->syncp);
|
||||
for (j = 0; j < VETH_RQ_STATS_LEN; j++) {
|
||||
offset = veth_rq_stats_desc[j].offset;
|
||||
data[idx + j] = *(u64 *)(stats_base + offset);
|
||||
}
|
||||
} while (u64_stats_fetch_retry_irq(&rq_stats->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&rq_stats->syncp, start));
|
||||
idx += VETH_RQ_STATS_LEN;
|
||||
}
|
||||
|
||||
|
@ -203,12 +203,12 @@ static void veth_get_ethtool_stats(struct net_device *dev,
|
|||
|
||||
tx_idx += (i % dev->real_num_tx_queues) * VETH_TQ_STATS_LEN;
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&rq_stats->syncp);
|
||||
start = u64_stats_fetch_begin(&rq_stats->syncp);
|
||||
for (j = 0; j < VETH_TQ_STATS_LEN; j++) {
|
||||
offset = veth_tq_stats_desc[j].offset;
|
||||
data[tx_idx + j] += *(u64 *)(base + offset);
|
||||
}
|
||||
} while (u64_stats_fetch_retry_irq(&rq_stats->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&rq_stats->syncp, start));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -379,13 +379,13 @@ static void veth_stats_rx(struct veth_stats *result, struct net_device *dev)
|
|||
unsigned int start;
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&stats->syncp);
|
||||
start = u64_stats_fetch_begin(&stats->syncp);
|
||||
peer_tq_xdp_xmit_err = stats->vs.peer_tq_xdp_xmit_err;
|
||||
xdp_tx_err = stats->vs.xdp_tx_err;
|
||||
packets = stats->vs.xdp_packets;
|
||||
bytes = stats->vs.xdp_bytes;
|
||||
drops = stats->vs.rx_drops;
|
||||
} while (u64_stats_fetch_retry_irq(&stats->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&stats->syncp, start));
|
||||
result->peer_tq_xdp_xmit_err += peer_tq_xdp_xmit_err;
|
||||
result->xdp_tx_err += xdp_tx_err;
|
||||
result->xdp_packets += packets;
|
||||
|
|
|
@ -2069,18 +2069,18 @@ static void virtnet_stats(struct net_device *dev,
|
|||
struct send_queue *sq = &vi->sq[i];
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&sq->stats.syncp);
|
||||
start = u64_stats_fetch_begin(&sq->stats.syncp);
|
||||
tpackets = sq->stats.packets;
|
||||
tbytes = sq->stats.bytes;
|
||||
terrors = sq->stats.tx_timeouts;
|
||||
} while (u64_stats_fetch_retry_irq(&sq->stats.syncp, start));
|
||||
} while (u64_stats_fetch_retry(&sq->stats.syncp, start));
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&rq->stats.syncp);
|
||||
start = u64_stats_fetch_begin(&rq->stats.syncp);
|
||||
rpackets = rq->stats.packets;
|
||||
rbytes = rq->stats.bytes;
|
||||
rdrops = rq->stats.drops;
|
||||
} while (u64_stats_fetch_retry_irq(&rq->stats.syncp, start));
|
||||
} while (u64_stats_fetch_retry(&rq->stats.syncp, start));
|
||||
|
||||
tot->rx_packets += rpackets;
|
||||
tot->tx_packets += tpackets;
|
||||
|
@ -2691,12 +2691,12 @@ static void virtnet_get_ethtool_stats(struct net_device *dev,
|
|||
|
||||
stats_base = (u8 *)&rq->stats;
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&rq->stats.syncp);
|
||||
start = u64_stats_fetch_begin(&rq->stats.syncp);
|
||||
for (j = 0; j < VIRTNET_RQ_STATS_LEN; j++) {
|
||||
offset = virtnet_rq_stats_desc[j].offset;
|
||||
data[idx + j] = *(u64 *)(stats_base + offset);
|
||||
}
|
||||
} while (u64_stats_fetch_retry_irq(&rq->stats.syncp, start));
|
||||
} while (u64_stats_fetch_retry(&rq->stats.syncp, start));
|
||||
idx += VIRTNET_RQ_STATS_LEN;
|
||||
}
|
||||
|
||||
|
@ -2705,12 +2705,12 @@ static void virtnet_get_ethtool_stats(struct net_device *dev,
|
|||
|
||||
stats_base = (u8 *)&sq->stats;
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&sq->stats.syncp);
|
||||
start = u64_stats_fetch_begin(&sq->stats.syncp);
|
||||
for (j = 0; j < VIRTNET_SQ_STATS_LEN; j++) {
|
||||
offset = virtnet_sq_stats_desc[j].offset;
|
||||
data[idx + j] = *(u64 *)(stats_base + offset);
|
||||
}
|
||||
} while (u64_stats_fetch_retry_irq(&sq->stats.syncp, start));
|
||||
} while (u64_stats_fetch_retry(&sq->stats.syncp, start));
|
||||
idx += VIRTNET_SQ_STATS_LEN;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -159,13 +159,13 @@ static void vrf_get_stats64(struct net_device *dev,
|
|||
|
||||
dstats = per_cpu_ptr(dev->dstats, i);
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&dstats->syncp);
|
||||
start = u64_stats_fetch_begin(&dstats->syncp);
|
||||
tbytes = dstats->tx_bytes;
|
||||
tpkts = dstats->tx_pkts;
|
||||
tdrops = dstats->tx_drps;
|
||||
rbytes = dstats->rx_bytes;
|
||||
rpkts = dstats->rx_pkts;
|
||||
} while (u64_stats_fetch_retry_irq(&dstats->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&dstats->syncp, start));
|
||||
stats->tx_bytes += tbytes;
|
||||
stats->tx_packets += tpkts;
|
||||
stats->tx_dropped += tdrops;
|
||||
|
|
|
@ -129,9 +129,9 @@ static void vxlan_vnifilter_stats_get(const struct vxlan_vni_node *vninode,
|
|||
|
||||
pstats = per_cpu_ptr(vninode->stats, i);
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&pstats->syncp);
|
||||
start = u64_stats_fetch_begin(&pstats->syncp);
|
||||
memcpy(&temp, &pstats->stats, sizeof(temp));
|
||||
} while (u64_stats_fetch_retry_irq(&pstats->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&pstats->syncp, start));
|
||||
|
||||
dest->rx_packets += temp.rx_packets;
|
||||
dest->rx_bytes += temp.rx_bytes;
|
||||
|
|
|
@ -456,19 +456,19 @@ static void mhi_mbim_ndo_get_stats64(struct net_device *ndev,
|
|||
unsigned int start;
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&link->rx_syncp);
|
||||
start = u64_stats_fetch_begin(&link->rx_syncp);
|
||||
stats->rx_packets = u64_stats_read(&link->rx_packets);
|
||||
stats->rx_bytes = u64_stats_read(&link->rx_bytes);
|
||||
stats->rx_errors = u64_stats_read(&link->rx_errors);
|
||||
} while (u64_stats_fetch_retry_irq(&link->rx_syncp, start));
|
||||
} while (u64_stats_fetch_retry(&link->rx_syncp, start));
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&link->tx_syncp);
|
||||
start = u64_stats_fetch_begin(&link->tx_syncp);
|
||||
stats->tx_packets = u64_stats_read(&link->tx_packets);
|
||||
stats->tx_bytes = u64_stats_read(&link->tx_bytes);
|
||||
stats->tx_errors = u64_stats_read(&link->tx_errors);
|
||||
stats->tx_dropped = u64_stats_read(&link->tx_dropped);
|
||||
} while (u64_stats_fetch_retry_irq(&link->tx_syncp, start));
|
||||
} while (u64_stats_fetch_retry(&link->tx_syncp, start));
|
||||
}
|
||||
|
||||
static void mhi_mbim_ul_callback(struct mhi_device *mhi_dev,
|
||||
|
|
|
@ -1392,16 +1392,16 @@ static void xennet_get_stats64(struct net_device *dev,
|
|||
unsigned int start;
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&tx_stats->syncp);
|
||||
start = u64_stats_fetch_begin(&tx_stats->syncp);
|
||||
tx_packets = tx_stats->packets;
|
||||
tx_bytes = tx_stats->bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&tx_stats->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&tx_stats->syncp, start));
|
||||
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&rx_stats->syncp);
|
||||
start = u64_stats_fetch_begin(&rx_stats->syncp);
|
||||
rx_packets = rx_stats->packets;
|
||||
rx_bytes = rx_stats->bytes;
|
||||
} while (u64_stats_fetch_retry_irq(&rx_stats->syncp, start));
|
||||
} while (u64_stats_fetch_retry(&rx_stats->syncp, start));
|
||||
|
||||
tot->rx_packets += rx_packets;
|
||||
tot->tx_packets += tx_packets;
|
||||
|
|
Loading…
Reference in New Issue