net: bridge: use new function dev_fetch_sw_netstats
Simplify the code by using new function dev_fetch_sw_netstats(). Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Link: https://lore.kernel.org/r/d1c3ff29-5691-9d54-d164-16421905fa59@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Родитель
1f68b2096f
Коммит
f3f04f0f3a
|
@ -206,27 +206,8 @@ static void br_get_stats64(struct net_device *dev,
|
|||
struct rtnl_link_stats64 *stats)
|
||||
{
|
||||
struct net_bridge *br = netdev_priv(dev);
|
||||
struct pcpu_sw_netstats tmp, sum = { 0 };
|
||||
unsigned int cpu;
|
||||
|
||||
for_each_possible_cpu(cpu) {
|
||||
unsigned int start;
|
||||
const struct pcpu_sw_netstats *bstats
|
||||
= per_cpu_ptr(br->stats, cpu);
|
||||
do {
|
||||
start = u64_stats_fetch_begin_irq(&bstats->syncp);
|
||||
memcpy(&tmp, bstats, sizeof(tmp));
|
||||
} while (u64_stats_fetch_retry_irq(&bstats->syncp, start));
|
||||
sum.tx_bytes += tmp.tx_bytes;
|
||||
sum.tx_packets += tmp.tx_packets;
|
||||
sum.rx_bytes += tmp.rx_bytes;
|
||||
sum.rx_packets += tmp.rx_packets;
|
||||
}
|
||||
|
||||
stats->tx_bytes = sum.tx_bytes;
|
||||
stats->tx_packets = sum.tx_packets;
|
||||
stats->rx_bytes = sum.rx_bytes;
|
||||
stats->rx_packets = sum.rx_packets;
|
||||
dev_fetch_sw_netstats(stats, br->stats);
|
||||
}
|
||||
|
||||
static int br_change_mtu(struct net_device *dev, int new_mtu)
|
||||
|
|
Загрузка…
Ссылка в новой задаче