summaryrefslogtreecommitdiffstats
path: root/net/mac80211/cfg.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2015-04-20 18:21:58 +0200
committerJohannes Berg <johannes.berg@intel.com>2015-05-06 13:30:00 +0200
commita31cf1c69e89e0c2d5515b04aca313f1014a714d (patch)
tree97dc2ba14c14bdfaf26624590ecd8d773a78a07a /net/mac80211/cfg.c
parentmac80211: extend get_tkip_seq to all keys (diff)
downloadlinux-a31cf1c69e89e0c2d5515b04aca313f1014a714d.tar.xz
linux-a31cf1c69e89e0c2d5515b04aca313f1014a714d.zip
mac80211: extend get_key() to return PN for all ciphers
For ciphers not supported by mac80211, the function currently doesn't return any PN data. Fix this by extending the driver's get_key_seq() a little more to allow moving arbitrary PN data. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/cfg.c')
-rw-r--r--net/mac80211/cfg.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
index dd7014b09396..3469bbdc891c 100644
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -431,6 +431,15 @@ static int ieee80211_get_key(struct wiphy *wiphy, struct net_device *dev,
params.seq = seq;
params.seq_len = 6;
break;
+ default:
+ if (!(key->flags & KEY_FLAG_UPLOADED_TO_HARDWARE))
+ break;
+ if (WARN_ON(key->conf.flags & IEEE80211_KEY_FLAG_GENERATE_IV))
+ break;
+ drv_get_key_seq(sdata->local, key, &kseq);
+ params.seq = kseq.hw.seq;
+ params.seq_len = kseq.hw.seq_len;
+ break;
}
params.key = key->conf.key;