diff options
author | Jouni Malinen <jouni@qca.qualcomm.com> | 2013-11-06 14:06:30 +0400 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2013-11-25 19:50:14 +0400 |
commit | cdb1b8057a44bbda67d403000a26be00de1d2326 (patch) | |
tree | 3b32561622393afb76e74cf5b0d1abab8204d0fa /drivers/net/wireless/mac80211_hwsim.c | |
parent | 3f718fd8401d7db86b9efc3ea1cdf5df41354b9f (diff) | |
download | linux-cdb1b8057a44bbda67d403000a26be00de1d2326.tar.xz |
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>
Diffstat (limited to 'drivers/net/wireless/mac80211_hwsim.c')
-rw-r--r-- | drivers/net/wireless/mac80211_hwsim.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c index 3df400c593a1..c72438bb2faf 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", |