aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/mvm/mac80211.c
diff options
context:
space:
mode:
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>2013-02-11 08:56:01 -0500
committerJohannes Berg <johannes.berg@intel.com>2013-02-12 10:07:14 -0500
commit5360cfb2bcbdd7a906cf290036bd406985973e88 (patch)
treeb7b4220cfa4df37a368840899a11150ba836a7d5 /drivers/net/wireless/iwlwifi/mvm/mac80211.c
parenta3777e0fdd4abb2f04202580c236d64ecdaac6f2 (diff)
iwlwifi: mvm: use atomic interface iteration to avoid deadlock
Using the non-atomic version creates a dependency between mac80211's iflist_mtx and mvm->mutex. Use the atomic version instead which doesn't take iflist_mtx but can't sleep, so send the HCMD in ASYNC. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/mvm/mac80211.c')
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/mac80211.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/iwlwifi/mvm/mac80211.c
index a6b05a02cfd4..64acc4a597fb 100644
--- a/drivers/net/wireless/iwlwifi/mvm/mac80211.c
+++ b/drivers/net/wireless/iwlwifi/mvm/mac80211.c
@@ -475,7 +475,7 @@ static int iwl_mvm_mac_add_interface(struct ieee80211_hw *hw,
475 if (mvm->vif_count > 1) { 475 if (mvm->vif_count > 1) {
476 IWL_DEBUG_MAC80211(mvm, 476 IWL_DEBUG_MAC80211(mvm,
477 "Disable power on existing interfaces\n"); 477 "Disable power on existing interfaces\n");
478 ieee80211_iterate_active_interfaces( 478 ieee80211_iterate_active_interfaces_atomic(
479 mvm->hw, 479 mvm->hw,
480 IEEE80211_IFACE_ITER_NORMAL, 480 IEEE80211_IFACE_ITER_NORMAL,
481 iwl_mvm_pm_disable_iterator, mvm); 481 iwl_mvm_pm_disable_iterator, mvm);