diff mbox series

[4/6] wifi: ath11k: adjust unlock sequence in ath11k_update_stats_event()

Message ID 20241113015631.3105-5-quic_bqiang@quicinc.com (mailing list archive)
State New
Delegated to: Jeff Johnson
Headers show
Series wifi: ath11k: fixes and refactor to firmware stats related functions | expand

Commit Message

Baochen Qiang Nov. 13, 2024, 1:56 a.m. UTC
Currently RCU lock and ar->data_lock are acquired in a sequence of

	rcu_read_lock()
	spin_lock_bh(&ar->data_lock)

but released in a sequence of

	rcu_read_unlock()
	spin_unlock_bh(&ar->data_lock)

Although there are no apparent issues with this, reorder them to
achieve symmetry.

Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.37

Signed-off-by: Baochen Qiang <quic_bqiang@quicinc.com>
---
 drivers/net/wireless/ath/ath11k/wmi.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Kalle Valo Nov. 13, 2024, 11:15 a.m. UTC | #1
Baochen Qiang <quic_bqiang@quicinc.com> writes:

> Currently RCU lock and ar->data_lock are acquired in a sequence of
>
> 	rcu_read_lock()
> 	spin_lock_bh(&ar->data_lock)
>
> but released in a sequence of
>
> 	rcu_read_unlock()
> 	spin_unlock_bh(&ar->data_lock)
>
> Although there are no apparent issues with this, reorder them to
> achieve symmetry.
>
> Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.37
>
> Signed-off-by: Baochen Qiang <quic_bqiang@quicinc.com>

Acked-by: Kalle Valo <kvalo@kernel.org>
diff mbox series

Patch

diff --git a/drivers/net/wireless/ath/ath11k/wmi.c b/drivers/net/wireless/ath/ath11k/wmi.c
index 641cc979589a..0f7df1fbaed8 100644
--- a/drivers/net/wireless/ath/ath11k/wmi.c
+++ b/drivers/net/wireless/ath/ath11k/wmi.c
@@ -8235,8 +8235,8 @@  static void ath11k_update_stats_event(struct ath11k_base *ab, struct sk_buff *sk
 
 complete:
 	complete(&ar->fw_stats_complete);
-	rcu_read_unlock();
 	spin_unlock_bh(&ar->data_lock);
+	rcu_read_unlock();
 
 	/* Since the stats's pdev, vdev and beacon list are spliced and reinitialised
 	 * at this point, no need to free the individual list.