diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/mvm/mac80211.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/mac80211.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/iwlwifi/mvm/mac80211.c index 72f73a3abc71..cc6ddc45b416 100644 --- a/drivers/net/wireless/iwlwifi/mvm/mac80211.c +++ b/drivers/net/wireless/iwlwifi/mvm/mac80211.c | |||
@@ -1020,7 +1020,7 @@ static void iwl_mvm_mc_iface_iterator(void *_data, u8 *mac, | |||
1020 | memcpy(cmd->bssid, vif->bss_conf.bssid, ETH_ALEN); | 1020 | memcpy(cmd->bssid, vif->bss_conf.bssid, ETH_ALEN); |
1021 | len = roundup(sizeof(*cmd) + cmd->count * ETH_ALEN, 4); | 1021 | len = roundup(sizeof(*cmd) + cmd->count * ETH_ALEN, 4); |
1022 | 1022 | ||
1023 | ret = iwl_mvm_send_cmd_pdu(mvm, MCAST_FILTER_CMD, CMD_SYNC, len, cmd); | 1023 | ret = iwl_mvm_send_cmd_pdu(mvm, MCAST_FILTER_CMD, CMD_ASYNC, len, cmd); |
1024 | if (ret) | 1024 | if (ret) |
1025 | IWL_ERR(mvm, "mcast filter cmd error. ret=%d\n", ret); | 1025 | IWL_ERR(mvm, "mcast filter cmd error. ret=%d\n", ret); |
1026 | } | 1026 | } |
@@ -1036,7 +1036,7 @@ static void iwl_mvm_recalc_multicast(struct iwl_mvm *mvm) | |||
1036 | if (WARN_ON_ONCE(!mvm->mcast_filter_cmd)) | 1036 | if (WARN_ON_ONCE(!mvm->mcast_filter_cmd)) |
1037 | return; | 1037 | return; |
1038 | 1038 | ||
1039 | ieee80211_iterate_active_interfaces( | 1039 | ieee80211_iterate_active_interfaces_atomic( |
1040 | mvm->hw, IEEE80211_IFACE_ITER_NORMAL, | 1040 | mvm->hw, IEEE80211_IFACE_ITER_NORMAL, |
1041 | iwl_mvm_mc_iface_iterator, &iter_data); | 1041 | iwl_mvm_mc_iface_iterator, &iter_data); |
1042 | } | 1042 | } |
@@ -1832,6 +1832,11 @@ static int iwl_mvm_mac_sched_scan_start(struct ieee80211_hw *hw, | |||
1832 | 1832 | ||
1833 | mutex_lock(&mvm->mutex); | 1833 | mutex_lock(&mvm->mutex); |
1834 | 1834 | ||
1835 | if (iwl_mvm_is_associated(mvm)) { | ||
1836 | ret = -EBUSY; | ||
1837 | goto out; | ||
1838 | } | ||
1839 | |||
1835 | switch (mvm->scan_status) { | 1840 | switch (mvm->scan_status) { |
1836 | case IWL_MVM_SCAN_OS: | 1841 | case IWL_MVM_SCAN_OS: |
1837 | IWL_DEBUG_SCAN(mvm, "Stopping previous scan for sched_scan\n"); | 1842 | IWL_DEBUG_SCAN(mvm, "Stopping previous scan for sched_scan\n"); |