Search Linux Wireless

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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Ming Yen Hsieh <mingyen.hsieh@xxxxxxxxxxxx>

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@xxxxxxxxxxxx>
---
 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





[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux