| From f30ad07418cdaf767c8d3c83d05c9bfaabf698dd Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 8 Nov 2018 09:51:56 +0100 |
| Subject: iwlwifi: mvm: fix A-MPDU reference assignment |
| |
| From: Johannes Berg <johannes.berg@intel.com> |
| |
| [ Upstream commit 1f7698abedeeb3fef3cbcf78e16f925df675a179 ] |
| |
| The current code assigns the reference, and then goes to increment |
| it if the toggle bit has changed. That way, we get |
| |
| Toggle 0 0 0 0 1 1 1 1 |
| ID 1 1 1 1 1 2 2 2 |
| |
| Fix that by assigning the post-toggle ID to get |
| |
| Toggle 0 0 0 0 1 1 1 1 |
| ID 1 1 1 1 2 2 2 2 |
| |
| Reported-by: Danny Alexander <danny.alexander@intel.com> |
| Signed-off-by: Johannes Berg <johannes.berg@intel.com> |
| Fixes: fbe4112791b8 ("iwlwifi: mvm: update mpdu metadata API") |
| Signed-off-by: Luca Coelho <luciano.coelho@intel.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c b/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c |
| index c2bbc8c17beb9..bc06d87a0106c 100644 |
| --- a/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c |
| +++ b/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c |
| @@ -810,12 +810,12 @@ void iwl_mvm_rx_mpdu_mq(struct iwl_mvm *mvm, struct napi_struct *napi, |
| bool toggle_bit = phy_info & IWL_RX_MPDU_PHY_AMPDU_TOGGLE; |
| |
| rx_status->flag |= RX_FLAG_AMPDU_DETAILS; |
| - rx_status->ampdu_reference = mvm->ampdu_ref; |
| /* toggle is switched whenever new aggregation starts */ |
| if (toggle_bit != mvm->ampdu_toggle) { |
| mvm->ampdu_ref++; |
| mvm->ampdu_toggle = toggle_bit; |
| } |
| + rx_status->ampdu_reference = mvm->ampdu_ref; |
| } |
| |
| rcu_read_lock(); |
| -- |
| 2.20.1 |
| |