summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJouni Malinen <jouni@qca.qualcomm.com>2013-11-06 12:06:30 +0200
committerJohannes Berg <johannes.berg@intel.com>2013-11-25 16:50:14 +0100
commitcdb1b8057a44bbda67d403000a26be00de1d2326 (patch)
tree3b32561622393afb76e74cf5b0d1abab8204d0fa
parent3f718fd8401d7db86b9efc3ea1cdf5df41354b9f (diff)
downloadop-kernel-dev-cdb1b8057a44bbda67d403000a26be00de1d2326.zip
op-kernel-dev-cdb1b8057a44bbda67d403000a26be00de1d2326.tar.gz
mac80211_hwsim: Fix bcn_en_iter to use atomic iteration
'mac80211_hwsim: Fix tracking of beaconing for multi-vif' introduced an iteration of active interfaces into the bss_info_changed handler. However, it used a wrong type of iteration and could result in a dead lock since iflist_mtx can already be held. Fix this by using the atomic version of the iteration function. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-rw-r--r--drivers/net/wireless/mac80211_hwsim.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c
index 3df400c..c72438b 100644
--- a/drivers/net/wireless/mac80211_hwsim.c
+++ b/drivers/net/wireless/mac80211_hwsim.c
@@ -1238,7 +1238,7 @@ static void mac80211_hwsim_bss_info_changed(struct ieee80211_hw *hw,
HRTIMER_MODE_REL);
} else if (!info->enable_beacon) {
unsigned int count = 0;
- ieee80211_iterate_active_interfaces(
+ ieee80211_iterate_active_interfaces_atomic(
data->hw, IEEE80211_IFACE_ITER_NORMAL,
mac80211_hwsim_bcn_en_iter, &count);
wiphy_debug(hw->wiphy, " beaconing vifs remaining: %u",
OpenPOWER on IntegriCloud