OSDN Git Service

iwlwifi: drop RX frames during hardware restart
authorShahar S Matityahu <shahar.s.matityahu@intel.com>
Wed, 25 Oct 2017 08:40:24 +0000 (11:40 +0300)
committerLuca Coelho <luciano.coelho@intel.com>
Fri, 3 Nov 2017 09:56:09 +0000 (11:56 +0200)
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>
drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c

index 343bdc4..76dc583 100644 (file)
@@ -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.
         */