提交 80c78c67 编写于 作者: M Michal Kazior 提交者: Kalle Valo

ath10k: fix possible deadlock

It was possible to have a deadlock due to inverted
locking of local->iflist_mtx and
ath10k->conf_mutex.
Signed-off-by: NMichal Kazior <michal.kazior@tieto.com>
Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
上级 a783c770
...@@ -2581,8 +2581,9 @@ static int ath10k_set_rts_threshold(struct ieee80211_hw *hw, u32 value) ...@@ -2581,8 +2581,9 @@ static int ath10k_set_rts_threshold(struct ieee80211_hw *hw, u32 value)
ar_iter.ar = ar; ar_iter.ar = ar;
mutex_lock(&ar->conf_mutex); mutex_lock(&ar->conf_mutex);
ieee80211_iterate_active_interfaces(hw, IEEE80211_IFACE_ITER_RESUME_ALL, ieee80211_iterate_active_interfaces_atomic(
ath10k_set_rts_iter, &ar_iter); hw, IEEE80211_IFACE_ITER_RESUME_ALL,
ath10k_set_rts_iter, &ar_iter);
mutex_unlock(&ar->conf_mutex); mutex_unlock(&ar->conf_mutex);
return ar_iter.ret; return ar_iter.ret;
...@@ -2622,8 +2623,9 @@ static int ath10k_set_frag_threshold(struct ieee80211_hw *hw, u32 value) ...@@ -2622,8 +2623,9 @@ static int ath10k_set_frag_threshold(struct ieee80211_hw *hw, u32 value)
ar_iter.ar = ar; ar_iter.ar = ar;
mutex_lock(&ar->conf_mutex); mutex_lock(&ar->conf_mutex);
ieee80211_iterate_active_interfaces(hw, IEEE80211_IFACE_ITER_RESUME_ALL, ieee80211_iterate_active_interfaces_atomic(
ath10k_set_frag_iter, &ar_iter); hw, IEEE80211_IFACE_ITER_RESUME_ALL,
ath10k_set_frag_iter, &ar_iter);
mutex_unlock(&ar->conf_mutex); mutex_unlock(&ar->conf_mutex);
return ar_iter.ret; return ar_iter.ret;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册