Patch "mac80211: Add RX flag to indicate ICV stripped" has been added to the 4.9-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
mac80211: Add RX flag to indicate ICV stripped
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
mac80211-add-rx-flag-to-indicate-icv-stripped.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
cef0acd4d7d4811d2d19cd0195031bf0dfe41249Mon Sep 17 00:00:00 2001
From: David Spinadel <[email protected]>
Date: Mon, 21 Nov 2016 16:58:40 +0200
Subject: mac80211: Add RX flag to indicate ICV stripped
From: David Spinadel <[email protected]>
commit cef0acd4d7d4811d2d19cd0195031bf0dfe41249 upstream.
Add a flag that indicates that the WEP ICV was stripped from an RX packet, allowing the device to not transfer that if it's already checked.
--- include/net/mac80211.h | 5 ++++- net/mac80211/wep.c | 3 ++- net/mac80211/wpa.c | 3 ++- 3 files changed, 8 insertions(+), 3 deletions(-)
include/net/mac80211.h +4 -1
@@ -1007,7 +1007,7 @@ ieee80211_tx_info_clear_status(struct ie* @RX_FLAG_DECRYPTED: This frame was decrypted in hardware. * @RX_FLAG_MMIC_STRIPPED: the Michael MIC is stripped off this frame, * verification has been done by the hardware. -* @RX_FLAG_IV_STRIPPED: The IV/ICV are stripped from this frame. +* @RX_FLAG_IV_STRIPPED: The IV and ICV are stripped from this frame. * If this flag is set, the stack cannot do any replay detection * hence the driver or hardware will have to do that. * @RX_FLAG_PN_VALIDATED: Currently only valid for CCMP/GCMP frames, this
@@ -1078,6 +1078,8 @@ ieee80211_tx_info_clear_status(struct ie* @RX_FLAG_ALLOW_SAME_PN: Allow the same PN as same packet before. * This is used for AMSDU subframes which can have the same PN as * the first subframe. +* @RX_FLAG_ICV_STRIPPED: The ICV is stripped from this frame. CRC checking must +* be done in the hardware. */ enum mac80211_rx_flags {RX_FLAG_MMIC_ERROR =BIT (0 ),
@@ -1113,6 +1115,7 @@ enum mac80211_rx_flags {RX_FLAG_RADIOTAP_VENDOR_DATA =BIT (31 ),RX_FLAG_MIC_STRIPPED =BIT_ULL (32 ),RX_FLAG_ALLOW_SAME_PN =BIT_ULL (33 ), + RX_FLAG_ICV_STRIPPED = BIT_ULL(34), };#define RX_FLAG_STBC_SHIFT 26
net/mac80211/wep.c +2 -1
@@ -293,7 +293,8 @@ ieee80211_crypto_wep_decrypt(struct ieeereturn RX_DROP_UNUSABLE ;ieee80211_wep_remove_iv (rx->local, rx->skb, rx->key);/* remove ICV */ -if (pskb_trim (rx->skb, rx->skb->len -IEEE80211_WEP_ICV_LEN )) +if (!(status->flag &RX_FLAG_ICV_STRIPPED ) && +pskb_trim (rx->skb, rx->skb->len -IEEE80211_WEP_ICV_LEN ))return RX_DROP_UNUSABLE ; }
net/mac80211/wpa.c +2 -1
@@ -295,7 +295,8 @@ ieee80211_crypto_tkip_decrypt(struct ieereturn RX_DROP_UNUSABLE ;/* Trim ICV */ -skb_trim (skb, skb->len -IEEE80211_TKIP_ICV_LEN ); +if (!(status->flag &RX_FLAG_ICV_STRIPPED )) +skb_trim (skb, skb->len -IEEE80211_TKIP_ICV_LEN );/* Remove IV */ memmove (skb->data +IEEE80211_TKIP_IV_LEN , skb->data, hdrlen);
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/mac80211-add-rx-flag-to-indicate-icv-stripped.patch