iwlwifi: mvm: don't log un-decrypted frames
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Tue, 23 Jul 2019 09:54:15 +0000 (12:54 +0300)
committerLuca Coelho <luciano.coelho@intel.com>
Fri, 6 Sep 2019 12:52:06 +0000 (15:52 +0300)
Sometimes the firmware won't be able to decrypt frames
because the keys were not installed yet or other scenarios.
The firmware will soon stop dropping multicast frames when
MAC_FILTER_ACCEPT_GRP is not set. The firmware will simply
always pass multicast frame in.

In order to avoid logging any such frame coming in when we
don't have the keys, drop the print.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c

index c48d6fb1640808c4458017ba970c92c3e4850ae9..77b03b7571934c0cbde8eaef7e6c269eabe3d336 100644 (file)
@@ -377,8 +377,16 @@ static int iwl_mvm_rx_crypto(struct iwl_mvm *mvm, struct ieee80211_hdr *hdr,
                stats->flag |= RX_FLAG_DECRYPTED;
                return 0;
        default:
-               /* Expected in monitor (not having the keys) */
-               if (!mvm->monitor_on)
+               /*
+                * Sometimes we can get frames that were not decrypted
+                * because the firmware didn't have the keys yet. This can
+                * happen after connection where we can get multicast frames
+                * before the GTK is installed.
+                * Silently drop those frames.
+                * Also drop un-decrypted frames in monitor mode.
+                */
+               if (!is_multicast_ether_addr(hdr->addr1) &&
+                   !mvm->monitor_on && net_ratelimit())
                        IWL_ERR(mvm, "Unhandled alg: 0x%x\n", status);
        }