iwlwifi: mvm: fix pending frame counter calculation
authorSara Sharon <sara.sharon@intel.com>
Wed, 7 Dec 2016 13:04:37 +0000 (15:04 +0200)
committerLuca Coelho <luciano.coelho@intel.com>
Mon, 6 Feb 2017 17:19:23 +0000 (19:19 +0200)
commit94c3e614df2117626fccfac8f821c66e30556384
treee392db0cd8da876d94b35b379377760f54f8b1cb
parent2c6262b754f3c3338cb40b23880a3ac1f4693b25
iwlwifi: mvm: fix pending frame counter calculation

In DQA mode the check whether to decrement the pending frames
counter relies on the tid status and not on the txq id.
This may result in an inconsistent state of the pending frames
counter in case frame is queued on a non aggregation queue but
with this TID, and will be followed by a failure to remove the
station and later on SYSASSERT 0x3421 when trying to remove the
MAC.
Such frames are for example bar and qos NDPs.
Fix it by aligning the condition of incrementing the counter
with the condition of decrementing it - rely on TID state for
DQA mode.
Also, avoid internal error like this affecting station removal
for DQA mode - since we can know for sure it is an internal
error.

Fixes: cf961e16620f ("iwlwifi: mvm: support dqa-mode agg on non-shared queue")
Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/sta.c
drivers/net/wireless/intel/iwlwifi/mvm/tx.c