]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
iwlwifi: mvm: don't free queue after delba in dqa
authorLiad Kaufman <liad.kaufman@intel.com>
Sun, 26 Jun 2016 11:45:12 +0000 (14:45 +0300)
committerLuca Coelho <luciano.coelho@intel.com>
Thu, 15 Sep 2016 16:30:58 +0000 (19:30 +0300)
In DQA mode, a delBA might free the queue although it
shouldn't. Fix that.

Fixes: cf941e174ee2 ("iwlwifi: mvm: support dqa-mode agg on non-shared queue")
Signed-off-by: Liad Kaufman <liad.kaufman@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/tx.c

index 8b91544e6220561a51e7491bbf32d47711c6324d..62714709ba8fe66cf36103824951dc78e59153c5 100644 (file)
@@ -1100,9 +1100,13 @@ static void iwl_mvm_check_ratid_empty(struct iwl_mvm *mvm,
                IWL_DEBUG_TX_QUEUES(mvm,
                                    "Can continue DELBA flow ssn = next_recl = %d\n",
                                    tid_data->next_reclaimed);
-               iwl_mvm_disable_txq(mvm, tid_data->txq_id,
-                                   vif->hw_queue[tid_to_mac80211_ac[tid]], tid,
-                                   CMD_ASYNC);
+               if (!iwl_mvm_is_dqa_supported(mvm)) {
+                       u8 mac80211_ac = tid_to_mac80211_ac[tid];
+
+                       iwl_mvm_disable_txq(mvm, tid_data->txq_id,
+                                           vif->hw_queue[mac80211_ac], tid,
+                                           CMD_ASYNC);
+               }
                tid_data->state = IWL_AGG_OFF;
                ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid);
                break;