diff options
author | Shahar S Matityahu <shahar.s.matityahu@intel.com> | 2017-10-25 11:40:24 +0300 |
---|---|---|
committer | Luca Coelho <luciano.coelho@intel.com> | 2017-11-03 11:56:09 +0200 |
commit | 364a1ab91df160f96da5f8d9f778cfbafd5f6d81 (patch) | |
tree | aa19fdd761d57a311d58b9e202479c213021475f /drivers/net/wireless/intel/iwlwifi/mvm | |
parent | 8cef5344b5f24883c97180c15e17b35d46fc4f37 (diff) | |
download | linux-364a1ab91df160f96da5f8d9f778cfbafd5f6d81.tar.bz2 |
iwlwifi: drop RX frames during hardware restart
In case of a hardware restart the BA session data in HW is lost
so the reorder buffer simply passes the frames to mac80211 as is
as there is no NSSN set. Instead, we will drop these frames
before they reach the reorder buffer. mac80211 drops such frames anyway,
but we shouldn't rely on that. In addition it saves some
processing time
Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Diffstat (limited to 'drivers/net/wireless/intel/iwlwifi/mvm')
-rw-r--r-- | drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c b/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c index 343bdc4266cd..76dc58381e1c 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c @@ -834,6 +834,9 @@ void iwl_mvm_rx_mpdu_mq(struct iwl_mvm *mvm, struct napi_struct *napi, struct sk_buff *skb; u8 crypt_len = 0; + if (unlikely(test_bit(IWL_MVM_STATUS_IN_HW_RESTART, &mvm->status))) + return; + /* Dont use dev_alloc_skb(), we'll have enough headroom once * ieee80211_hdr pulled. */ |