aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorMohsin Bashir <mohsin.bashr@gmail.com>2025-08-01 19:46:36 -0700
committerJakub Kicinski <kuba@kernel.org>2025-08-05 16:01:45 -0700
commit53abd9c86fd086d8448ceec4e9ffbd65b6c17a37 (patch)
tree75e7afe5baab8b321b46dc8a9c269ef77bc5194c
parenteth: fbnic: Fix tx_dropped reporting (diff)
downloadwireguard-linux-53abd9c86fd086d8448ceec4e9ffbd65b6c17a37.tar.xz
wireguard-linux-53abd9c86fd086d8448ceec4e9ffbd65b6c17a37.zip
eth: fbnic: Lock the tx_dropped update
Wrap copying of drop stats on TX path from fbd->hw_stats by the hw_stats_lock. Currently, it is being performed outside the lock and another thread accessing fbd->hw_stats can lead to inconsistencies. Fixes: 5f8bd2ce8269 ("eth: fbnic: add support for TMI stats") Signed-off-by: Mohsin Bashir <mohsin.bashr@gmail.com> Reviewed-by: Simon Horman <horms@kernel.org> Link: https://patch.msgid.link/20250802024636.679317-3-mohsin.bashr@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r--drivers/net/ethernet/meta/fbnic/fbnic_netdev.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/ethernet/meta/fbnic/fbnic_netdev.c b/drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
index c0c9808afdd0..e67e99487a27 100644
--- a/drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
+++ b/drivers/net/ethernet/meta/fbnic/fbnic_netdev.c
@@ -423,10 +423,12 @@ static void fbnic_get_stats64(struct net_device *dev,
tx_dropped = stats->dropped;
/* Record drops from Tx HW Datapath */
+ spin_lock(&fbd->hw_stats_lock);
tx_dropped += fbd->hw_stats.tmi.drop.frames.value +
fbd->hw_stats.tti.cm_drop.frames.value +
fbd->hw_stats.tti.frame_drop.frames.value +
fbd->hw_stats.tti.tbi_drop.frames.value;
+ spin_unlock(&fbd->hw_stats_lock);
stats64->tx_bytes = tx_bytes;
stats64->tx_packets = tx_packets;