Commit 2db72b8a authored by Johannes Berg's avatar Johannes Berg
Browse files

wifi: iwlwifi: mvm: indicate HW decrypt for beacon protection



We've already done the 'decryption' here, so tell
mac80211 it need not do it again.

Fixes: b1fdc250 ("iwlwifi: mvm: advertise BIGTK client support if available")
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
Signed-off-by: default avatarGregory Greenman <gregory.greenman@intel.com>
Link: https://lore.kernel.org/r/20230620125813.a50cf68fbf2e.Ieceacbe3789d81ea02ae085ad8d1f8813a33c31b@changeid


Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent a6cc6ccb
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -279,7 +279,8 @@ static void iwl_mvm_get_signal_strength(struct iwl_mvm *mvm,
static int iwl_mvm_rx_mgmt_prot(struct ieee80211_sta *sta,
				struct ieee80211_hdr *hdr,
				struct iwl_rx_mpdu_desc *desc,
				u32 status)
				u32 status,
				struct ieee80211_rx_status *stats)
{
	struct iwl_mvm_sta *mvmsta;
	struct iwl_mvm_vif *mvmvif;
@@ -308,8 +309,10 @@ static int iwl_mvm_rx_mgmt_prot(struct ieee80211_sta *sta,

	/* good cases */
	if (likely(status & IWL_RX_MPDU_STATUS_MIC_OK &&
		   !(status & IWL_RX_MPDU_STATUS_REPLAY_ERROR)))
		   !(status & IWL_RX_MPDU_STATUS_REPLAY_ERROR))) {
		stats->flag |= RX_FLAG_DECRYPTED;
		return 0;
	}

	if (!sta)
		return -1;
@@ -378,7 +381,7 @@ static int iwl_mvm_rx_crypto(struct iwl_mvm *mvm, struct ieee80211_sta *sta,

	if (unlikely(ieee80211_is_mgmt(hdr->frame_control) &&
		     !ieee80211_has_protected(hdr->frame_control)))
		return iwl_mvm_rx_mgmt_prot(sta, hdr, desc, status);
		return iwl_mvm_rx_mgmt_prot(sta, hdr, desc, status, stats);

	if (!ieee80211_has_protected(hdr->frame_control) ||
	    (status & IWL_RX_MPDU_STATUS_SEC_MASK) ==