summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorSara Sharon <sara.sharon@intel.com>2016-06-21 14:14:08 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-10-07 15:21:19 +0200
commita8762bfbbb321489c287aac3794cdbe09a320a30 (patch)
tree53a664f46154a873271a4c55744939e2f5110799 /drivers
parent9d518a8470aa07b1b67c7b9490c118230883bb56 (diff)
downloadlinux-stable-a8762bfbbb321489c287aac3794cdbe09a320a30.tar.gz
linux-stable-a8762bfbbb321489c287aac3794cdbe09a320a30.tar.bz2
linux-stable-a8762bfbbb321489c287aac3794cdbe09a320a30.zip
iwlwifi: mvm: free RX reorder buffer on restart
commit 60dec5233cd8651860e8010c953d116fb0f1ba86 upstream. Restart flow zeroes the rx_ba_sessions counter. Mac80211 asks driver to tear down of the session only afterwards, and as a result driver didn't free the data. Fix it. Signed-off-by: Sara Sharon <sara.sharon@intel.com> Fixes: 10b2b2019d81 ("iwlwifi: mvm: add infrastructure for tracking BA session in driver") Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/intel/iwlwifi/mvm/sta.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/sta.c b/drivers/net/wireless/intel/iwlwifi/mvm/sta.c
index b23ab4a4504f..1822ad374be3 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/sta.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/sta.c
@@ -1374,11 +1374,12 @@ int iwl_mvm_sta_rx_agg(struct iwl_mvm *mvm, struct ieee80211_sta *sta,
*/
WARN_ON(rcu_access_pointer(mvm->baid_map[baid]));
rcu_assign_pointer(mvm->baid_map[baid], baid_data);
- } else if (mvm->rx_ba_sessions > 0) {
+ } else {
u8 baid = mvm_sta->tid_to_baid[tid];
- /* check that restart flow didn't zero the counter */
- mvm->rx_ba_sessions--;
+ if (mvm->rx_ba_sessions > 0)
+ /* check that restart flow didn't zero the counter */
+ mvm->rx_ba_sessions--;
if (!iwl_mvm_has_new_rx_api(mvm))
return 0;