diff options
author | Liad Kaufman <liad.kaufman@intel.com> | 2016-06-26 14:45:12 +0300 |
---|---|---|
committer | Luca Coelho <luciano.coelho@intel.com> | 2016-09-15 19:30:58 +0300 |
commit | 15985fba2e93872f3070af63ae9b0d0f42b2c7ea (patch) | |
tree | 952386c1045a930e2fffb8e9aed6a9cc73d5fc77 /drivers/net/wireless/intel/iwlwifi/mvm/tx.c | |
parent | ca3b9c6b6d4db9a8ba5fc8b95664e75468c59f9f (diff) |
iwlwifi: mvm: don't free queue after delba in dqa
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>
Diffstat (limited to 'drivers/net/wireless/intel/iwlwifi/mvm/tx.c')
-rw-r--r-- | drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c index 8b91544e6220..62714709ba8f 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c @@ -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; |