do {
data_src = &hwstats->tx_bytes;
data_dst = data;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 6, 0)
+ start = u64_stats_fetch_begin(&hwstats->syncp);
+#else
start = u64_stats_fetch_begin_irq(&hwstats->syncp);
+#endif
for (i = 0; i < ARRAY_SIZE(fe_gdma_str); i++)
*data_dst++ = *data_src++;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 6, 0)
+ } while (u64_stats_fetch_retry(&hwstats->syncp, start));
+#else
} while (u64_stats_fetch_retry_irq(&hwstats->syncp, start));
+#endif
}
static struct ethtool_ops fe_ethtool_ops = {
}
do {
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 6, 0)
+ start = u64_stats_fetch_begin(&hwstats->syncp);
+#else
start = u64_stats_fetch_begin_irq(&hwstats->syncp);
+#endif
storage->rx_packets = hwstats->rx_packets;
storage->tx_packets = hwstats->tx_packets;
storage->rx_bytes = hwstats->rx_bytes;
storage->rx_crc_errors = hwstats->rx_fcs_errors;
storage->rx_errors = hwstats->rx_checksum_errors;
storage->tx_aborted_errors = hwstats->tx_skip;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 6, 0)
+ } while (u64_stats_fetch_retry(&hwstats->syncp, start));
+#else
} while (u64_stats_fetch_retry_irq(&hwstats->syncp, start));
+#endif
storage->tx_errors = priv->netdev->stats.tx_errors;
storage->rx_dropped = priv->netdev->stats.rx_dropped;