diff options
author | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2017-05-07 13:31:55 +0300 |
---|---|---|
committer | Luca Coelho <luciano.coelho@intel.com> | 2017-06-23 12:06:39 +0300 |
commit | 59df97f7223636399f425a5e76586218c48d791e (patch) | |
tree | b03ea2aa9dbd9c7e25128d6d735ed93bad9cdbc1 /drivers/net/wireless/intel/iwlwifi/mvm/utils.c | |
parent | 6b54ebf73b3e5adc2cab3abc6cb37ca66fa74ae2 (diff) |
iwlwifi: mvm: don't mark TIDs that are not idle wrt BA as inactive
A TID may not have traffic but still have a BA agreement
active (or being setup / torn down) since a BA agreement
can be triggered by a debugfs hook.
Just avoid to consider such a TID as inactive to make the
logic safer.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Diffstat (limited to 'drivers/net/wireless/intel/iwlwifi/mvm/utils.c')
-rw-r--r-- | drivers/net/wireless/intel/iwlwifi/mvm/utils.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/utils.c b/drivers/net/wireless/intel/iwlwifi/mvm/utils.c index e7cc8e05615a..8ba8b71dd1a4 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/utils.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/utils.c @@ -1215,6 +1215,10 @@ static void iwl_mvm_remove_inactive_tids(struct iwl_mvm *mvm, /* If some TFDs are still queued - don't mark TID as inactive */ if (iwl_mvm_tid_queued(mvm, &mvmsta->tid_data[tid])) tid_bitmap &= ~BIT(tid); + + /* Don't mark as inactive any TID that has an active BA */ + if (mvmsta->tid_data[tid].state != IWL_AGG_OFF) + tid_bitmap &= ~BIT(tid); } /* If all TIDs in the queue are inactive - mark queue as inactive. */ |