summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorMarek Kwaczynski2014-04-14 11:27:21 +0200
committerJohannes Berg2014-04-25 17:26:15 +0200
commit17d38fa8c20a9c3ec76943da46264ce657ac56d0 (patch)
treea6e59c0e973e7ea873728bb002e0fb7c3ad27882 /net
parentmac80211: compute chanctx refcount on-the-fly (diff)
downloadkernel-qcow2-linux-17d38fa8c20a9c3ec76943da46264ce657ac56d0.tar.gz
kernel-qcow2-linux-17d38fa8c20a9c3ec76943da46264ce657ac56d0.tar.xz
kernel-qcow2-linux-17d38fa8c20a9c3ec76943da46264ce657ac56d0.zip
mac80211: add option to generate CCMP IVs only for mgmt frames
Some chips can encrypt managment frames in HW, but require generated IV in the frame. Add a key flag that allows us to achieve this. Signed-off-by: Marek Kwaczynski <marek.kwaczynski@tieto.com> [use BIT(0) to fill that spot, fix indentation] Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net')
-rw-r--r--net/mac80211/wpa.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/mac80211/wpa.c b/net/mac80211/wpa.c
index b8600e3c29c8..9b3dcc201145 100644
--- a/net/mac80211/wpa.c
+++ b/net/mac80211/wpa.c
@@ -406,7 +406,10 @@ static int ccmp_encrypt_skb(struct ieee80211_tx_data *tx, struct sk_buff *skb)
if (info->control.hw_key &&
!(info->control.hw_key->flags & IEEE80211_KEY_FLAG_GENERATE_IV) &&
- !(info->control.hw_key->flags & IEEE80211_KEY_FLAG_PUT_IV_SPACE)) {
+ !(info->control.hw_key->flags & IEEE80211_KEY_FLAG_PUT_IV_SPACE) &&
+ !((info->control.hw_key->flags &
+ IEEE80211_KEY_FLAG_GENERATE_IV_MGMT) &&
+ ieee80211_is_mgmt(hdr->frame_control))) {
/*
* hwaccel has no need for preallocated room for CCMP
* header or MIC fields