iwlwifi: mvm: quietly accept non-sta disassoc frames
authorJohannes Berg <johannes.berg@intel.com>
Mon, 12 Jun 2017 09:24:06 +0000 (11:24 +0200)
committerLuca Coelho <luciano.coelho@intel.com>
Thu, 29 Jun 2017 18:02:50 +0000 (21:02 +0300)
When a station that's not associated sends a data frame (e.g. an NDP)
hostapd will respond with a disassoc frame, telling it that it's not
associated. The station might also not be authenticated, in which case
there will not be a station entry for it, and as a result we need to
accept such frames without a station.

Fixes: 3ee0f0e23e4f ("iwlwifi: mvm: fix DQA AP mode station assumption")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/tx.c

index 73967790f7e4714430820392f828f45423a341d4..60360ed73f26165c890d0af3bac742b5669fb8d9 100644 (file)
@@ -568,9 +568,12 @@ static int iwl_mvm_get_ctrl_vif_queue(struct iwl_mvm *mvm,
                 * station that we don't have, or similarly an association
                 * response (with non-success status) for a station we can't
                 * accept.
+                * Also, disassociate frames might happen, particular with
+                * reason 7 ("Class 3 frame received from nonassociated STA").
                 */
                if (ieee80211_is_probe_resp(fc) || ieee80211_is_auth(fc) ||
-                   ieee80211_is_deauth(fc) || ieee80211_is_assoc_resp(fc))
+                   ieee80211_is_deauth(fc) || ieee80211_is_assoc_resp(fc) ||
+                   ieee80211_is_disassoc(fc))
                        return mvm->probe_queue;
                if (info->hw_queue == info->control.vif->cab_queue)
                        return mvmvif->cab_queue;