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

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@changeidSigned-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent a6cc6ccb
...@@ -279,7 +279,8 @@ static void iwl_mvm_get_signal_strength(struct iwl_mvm *mvm, ...@@ -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, static int iwl_mvm_rx_mgmt_prot(struct ieee80211_sta *sta,
struct ieee80211_hdr *hdr, struct ieee80211_hdr *hdr,
struct iwl_rx_mpdu_desc *desc, struct iwl_rx_mpdu_desc *desc,
u32 status) u32 status,
struct ieee80211_rx_status *stats)
{ {
struct iwl_mvm_sta *mvmsta; struct iwl_mvm_sta *mvmsta;
struct iwl_mvm_vif *mvmvif; struct iwl_mvm_vif *mvmvif;
...@@ -308,8 +309,10 @@ static int iwl_mvm_rx_mgmt_prot(struct ieee80211_sta *sta, ...@@ -308,8 +309,10 @@ static int iwl_mvm_rx_mgmt_prot(struct ieee80211_sta *sta,
/* good cases */ /* good cases */
if (likely(status & IWL_RX_MPDU_STATUS_MIC_OK && 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; return 0;
}
if (!sta) if (!sta)
return -1; return -1;
...@@ -378,7 +381,7 @@ static int iwl_mvm_rx_crypto(struct iwl_mvm *mvm, struct ieee80211_sta *sta, ...@@ -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) && if (unlikely(ieee80211_is_mgmt(hdr->frame_control) &&
!ieee80211_has_protected(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) || if (!ieee80211_has_protected(hdr->frame_control) ||
(status & IWL_RX_MPDU_STATUS_SEC_MASK) == (status & IWL_RX_MPDU_STATUS_SEC_MASK) ==
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment