mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-20 22:23:27 +00:00
ramips: 6.6: fix net drivers compatibility
Fix compatibility of ralink net drivers with kernel 6.6. It follows the kernel patch: u64_stats: Streamline the implementation (https://github.com/torvalds/linux/commit/44b0c2957adc62b86fcd51adeaf8e993171b) Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
This commit is contained in:
parent
0e5fb421a9
commit
7753b143cd
@ -199,12 +199,20 @@ static void fe_get_ethtool_stats(struct net_device *dev,
|
|||||||
do {
|
do {
|
||||||
data_src = &hwstats->tx_bytes;
|
data_src = &hwstats->tx_bytes;
|
||||||
data_dst = data;
|
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);
|
start = u64_stats_fetch_begin_irq(&hwstats->syncp);
|
||||||
|
#endif
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(fe_gdma_str); i++)
|
for (i = 0; i < ARRAY_SIZE(fe_gdma_str); i++)
|
||||||
*data_dst++ = *data_src++;
|
*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));
|
} while (u64_stats_fetch_retry_irq(&hwstats->syncp, start));
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct ethtool_ops fe_ethtool_ops = {
|
static struct ethtool_ops fe_ethtool_ops = {
|
||||||
|
@ -487,7 +487,11 @@ static void fe_get_stats64(struct net_device *dev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
do {
|
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);
|
start = u64_stats_fetch_begin_irq(&hwstats->syncp);
|
||||||
|
#endif
|
||||||
storage->rx_packets = hwstats->rx_packets;
|
storage->rx_packets = hwstats->rx_packets;
|
||||||
storage->tx_packets = hwstats->tx_packets;
|
storage->tx_packets = hwstats->tx_packets;
|
||||||
storage->rx_bytes = hwstats->rx_bytes;
|
storage->rx_bytes = hwstats->rx_bytes;
|
||||||
@ -499,7 +503,11 @@ static void fe_get_stats64(struct net_device *dev,
|
|||||||
storage->rx_crc_errors = hwstats->rx_fcs_errors;
|
storage->rx_crc_errors = hwstats->rx_fcs_errors;
|
||||||
storage->rx_errors = hwstats->rx_checksum_errors;
|
storage->rx_errors = hwstats->rx_checksum_errors;
|
||||||
storage->tx_aborted_errors = hwstats->tx_skip;
|
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));
|
} while (u64_stats_fetch_retry_irq(&hwstats->syncp, start));
|
||||||
|
#endif
|
||||||
|
|
||||||
storage->tx_errors = priv->netdev->stats.tx_errors;
|
storage->tx_errors = priv->netdev->stats.tx_errors;
|
||||||
storage->rx_dropped = priv->netdev->stats.rx_dropped;
|
storage->rx_dropped = priv->netdev->stats.rx_dropped;
|
||||||
|
Loading…
Reference in New Issue
Block a user