[PATCH 1/4] wifi: mt76: mt792x: protect state->cc_* counters with cc_lock

Mingyen Hsieh mingyen.hsieh at mediatek.com
Wed Sep 3 20:06:46 PDT 2025


From: Ming Yen Hsieh <mingyen.hsieh at mediatek.com>

The updates to state->cc_* (cc_busy, cc_tx, etc.) lack synchronization,
risking race conditions and inconsistent statistics.

Add cc_lock protection to ensure atomic updates.

Signed-off-by: Ming Yen Hsieh <mingyen.hsieh at mediatek.com>
---
 drivers/net/wireless/mediatek/mt76/mt792x_mac.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/net/wireless/mediatek/mt76/mt792x_mac.c b/drivers/net/wireless/mediatek/mt76/mt792x_mac.c
index 3f1d9ba49076..f86e0ac91100 100644
--- a/drivers/net/wireless/mediatek/mt76/mt792x_mac.c
+++ b/drivers/net/wireless/mediatek/mt76/mt792x_mac.c
@@ -243,10 +243,14 @@ mt792x_phy_update_channel(struct mt76_phy *mphy, int idx)
 		phy->noise += nf - (phy->noise >> 4);
 
 	state = mphy->chan_state;
+
+	spin_lock_bh(&dev->mt76.cc_lock);
 	state->cc_busy += busy_time;
 	state->cc_tx += tx_time;
 	state->cc_rx += rx_time + obss_time;
 	state->cc_bss_rx += rx_time;
+	spin_unlock_bh(&dev->mt76.cc_lock);
+
 	state->noise = -(phy->noise >> 4);
 }
 
-- 
2.34.1




More information about the Linux-mediatek mailing list