iwlwifi: mvm: write queue_sync_state only for sync
authorAvraham Stern <avraham.stern@intel.com>
Sat, 7 Nov 2020 08:50:09 +0000 (10:50 +0200)
committerKalle Valo <kvalo@codeaurora.org>
Tue, 10 Nov 2020 18:45:34 +0000 (20:45 +0200)
We use mvm->queue_sync_state to wait for synchronous queue sync
messages, but if an async one happens inbetween we shouldn't
clear mvm->queue_sync_state after sending the async one, that
can run concurrently (at least from the CPU POV) with another
synchronous queue sync.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Fixes: 3c514bf831ac ("iwlwifi: mvm: add a loose synchronization of the NSSN across Rx queues")
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/iwlwifi.20201107104557.51a3148f2c14.I0772171dbaec87433a11513e9586d98b5d920b5f@changeid
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c

index 688c1125e67b6931ef22c27b9b34901a254661c6..62e884f3e29ecf8b7f4703afae3cc23d5deff938 100644 (file)
@@ -3127,6 +3127,9 @@ static int iwl_mvm_mac_sta_state(struct ieee80211_hw *hw,
                        goto out_unlock;
                }
 
+               if (vif->type == NL80211_IFTYPE_STATION)
+                       vif->bss_conf.he_support = sta->he_cap.has_he;
+
                if (sta->tdls &&
                    (vif->p2p ||
                     iwl_mvm_tdls_sta_count(mvm, NULL) ==