diff mbox series

ath11k: fix rcu lock protect in peer assoc confirmation

Message ID 1580865748-31286-1-git-send-email-periyasa@codeaurora.org (mailing list archive)
State Accepted
Commit db0889aba2629e05e555b3e4b29d5eb0ae97efec
Delegated to: Kalle Valo
Headers show
Series ath11k: fix rcu lock protect in peer assoc confirmation | expand

Commit Message

Karthikeyan periyasamy Feb. 5, 2020, 1:22 a.m. UTC
ath11k_mac_get_ar_by_vdev_id() get protected under rcu lock
and unlock. peer association confirmation event get used this API
without rcu protection, so corrected it.

Signed-off-by: Karthikeyan Periyasamy <periyasa@codeaurora.org>
---
 drivers/net/wireless/ath/ath11k/wmi.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Kalle Valo Feb. 11, 2020, 6:31 p.m. UTC | #1
Karthikeyan Periyasamy <periyasa@codeaurora.org> wrote:

> ath11k_mac_get_ar_by_vdev_id() get protected under rcu lock
> and unlock. peer association confirmation event get used this API
> without rcu protection, so corrected it.
> 
> Signed-off-by: Karthikeyan Periyasamy <periyasa@codeaurora.org>
> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>

Patch applied to ath-next branch of ath.git, thanks.

db0889aba262 ath11k: fix rcu lock protect in peer assoc confirmation
diff mbox series

Patch

diff --git a/drivers/net/wireless/ath/ath11k/wmi.c b/drivers/net/wireless/ath/ath11k/wmi.c
index a9b301c..9cbe038d 100644
--- a/drivers/net/wireless/ath/ath11k/wmi.c
+++ b/drivers/net/wireless/ath/ath11k/wmi.c
@@ -5345,15 +5345,18 @@  static void ath11k_peer_assoc_conf_event(struct ath11k_base *ab, struct sk_buff
 		   "peer assoc conf ev vdev id %d macaddr %pM\n",
 		   peer_assoc_conf.vdev_id, peer_assoc_conf.macaddr);
 
+	rcu_read_lock();
 	ar = ath11k_mac_get_ar_by_vdev_id(ab, peer_assoc_conf.vdev_id);
 
 	if (!ar) {
 		ath11k_warn(ab, "invalid vdev id in peer assoc conf ev %d",
 			    peer_assoc_conf.vdev_id);
+		rcu_read_unlock();
 		return;
 	}
 
 	complete(&ar->peer_assoc_done);
+	rcu_read_unlock();
 }
 
 static void ath11k_update_stats_event(struct ath11k_base *ab, struct sk_buff *skb)