diff mbox

[13/15] iwlwifi: mvm: mark MIC stripped MPDUs

Message ID 20171202162858.4167-14-luca@coelho.fi (mailing list archive)
State Accepted
Delegated to: Luca Coelho
Headers show

Commit Message

Luca Coelho Dec. 2, 2017, 4:28 p.m. UTC
From: Sara Sharon <sara.sharon@intel.com>

When RADA is active, the hardware decrypts the packets and strips off
the MIC as it is useless after decryption. Indicate that to mac80211.

Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Luca Coelho Dec. 4, 2017, 12:57 p.m. UTC | #1
On Sat, 2017-12-02 at 18:28 +0200, Luca Coelho wrote:
> From: Sara Sharon <sara.sharon@intel.com>
> 
> When RADA is active, the hardware decrypts the packets and strips off
> the MIC as it is useless after decryption. Indicate that to mac80211.
> 
> Signed-off-by: Sara Sharon <sara.sharon@intel.com>
> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
> ---
>  drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
> b/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
> index 0e6a7dd30aa9..a81ff4163d05 100644
> --- a/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
> +++ b/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
> @@ -253,6 +253,8 @@ static int iwl_mvm_rx_crypto(struct iwl_mvm *mvm,
> struct ieee80211_hdr *hdr,
>  			return -1;
>  
>  		stats->flag |= RX_FLAG_DECRYPTED;
> +		if (pkt_flags & FH_RSCSR_RADA_EN)
> +			stats->flag |= RX_FLAG_MIC_STRIPPED;
>  		*crypt_len = IEEE80211_CCMP_HDR_LEN;
>  		return 0;
>  	case IWL_RX_MPDU_STATUS_SEC_TKIP:

Same thing here, I'll move it to the -fixes series, since it's needed
by 9000-series NICs.

--
Cheers,
Luca.
diff mbox

Patch

diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c b/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
index 0e6a7dd30aa9..a81ff4163d05 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
@@ -253,6 +253,8 @@  static int iwl_mvm_rx_crypto(struct iwl_mvm *mvm, struct ieee80211_hdr *hdr,
 			return -1;
 
 		stats->flag |= RX_FLAG_DECRYPTED;
+		if (pkt_flags & FH_RSCSR_RADA_EN)
+			stats->flag |= RX_FLAG_MIC_STRIPPED;
 		*crypt_len = IEEE80211_CCMP_HDR_LEN;
 		return 0;
 	case IWL_RX_MPDU_STATUS_SEC_TKIP: