diff options
author | David S. Miller <davem@davemloft.net> | 2017-10-22 08:36:53 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-10-22 08:39:14 -0400 |
commit | f8ddadc4db6c7b7029b6d0e0d9af24f74ad27ca2 (patch) | |
tree | 0a6432aba336bae42313613f4c891bcfce02bd4e /net/mac80211 | |
parent | bdd091bab8c631bd2801af838e344fad34566410 (diff) | |
parent | b5ac3beb5a9f0ef0ea64cd85faf94c0dc4de0e42 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
There were quite a few overlapping sets of changes here.
Daniel's bug fix for off-by-ones in the new BPF branch instructions,
along with the added allowances for "data_end > ptr + x" forms
collided with the metadata additions.
Along with those three changes came veritifer test cases, which in
their final form I tried to group together properly. If I had just
trimmed GIT's conflict tags as-is, this would have split up the
meta tests unnecessarily.
In the socketmap code, a set of preemption disabling changes
overlapped with the rename of bpf_compute_data_end() to
bpf_compute_data_pointers().
Changes were made to the mv88e6060.c driver set addr method
which got removed in net-next.
The hyperv transport socket layer had a locking change in 'net'
which overlapped with a change of socket state macro usage
in 'net-next'.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/mac80211')
-rw-r--r-- | net/mac80211/key.c | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/net/mac80211/key.c b/net/mac80211/key.c index a98fc2b5e0dc..ae995c8480db 100644 --- a/net/mac80211/key.c +++ b/net/mac80211/key.c | |||
@@ -4,7 +4,7 @@ | |||
4 | * Copyright 2006-2007 Jiri Benc <jbenc@suse.cz> | 4 | * Copyright 2006-2007 Jiri Benc <jbenc@suse.cz> |
5 | * Copyright 2007-2008 Johannes Berg <johannes@sipsolutions.net> | 5 | * Copyright 2007-2008 Johannes Berg <johannes@sipsolutions.net> |
6 | * Copyright 2013-2014 Intel Mobile Communications GmbH | 6 | * Copyright 2013-2014 Intel Mobile Communications GmbH |
7 | * Copyright 2015 Intel Deutschland GmbH | 7 | * Copyright 2015-2017 Intel Deutschland GmbH |
8 | * | 8 | * |
9 | * This program is free software; you can redistribute it and/or modify | 9 | * This program is free software; you can redistribute it and/or modify |
10 | * it under the terms of the GNU General Public License version 2 as | 10 | * it under the terms of the GNU General Public License version 2 as |
@@ -620,9 +620,6 @@ int ieee80211_key_link(struct ieee80211_key *key, | |||
620 | 620 | ||
621 | pairwise = key->conf.flags & IEEE80211_KEY_FLAG_PAIRWISE; | 621 | pairwise = key->conf.flags & IEEE80211_KEY_FLAG_PAIRWISE; |
622 | idx = key->conf.keyidx; | 622 | idx = key->conf.keyidx; |
623 | key->local = sdata->local; | ||
624 | key->sdata = sdata; | ||
625 | key->sta = sta; | ||
626 | 623 | ||
627 | mutex_lock(&sdata->local->key_mtx); | 624 | mutex_lock(&sdata->local->key_mtx); |
628 | 625 | ||
@@ -633,6 +630,21 @@ int ieee80211_key_link(struct ieee80211_key *key, | |||
633 | else | 630 | else |
634 | old_key = key_mtx_dereference(sdata->local, sdata->keys[idx]); | 631 | old_key = key_mtx_dereference(sdata->local, sdata->keys[idx]); |
635 | 632 | ||
633 | /* | ||
634 | * Silently accept key re-installation without really installing the | ||
635 | * new version of the key to avoid nonce reuse or replay issues. | ||
636 | */ | ||
637 | if (old_key && key->conf.keylen == old_key->conf.keylen && | ||
638 | !memcmp(key->conf.key, old_key->conf.key, key->conf.keylen)) { | ||
639 | ieee80211_key_free_unused(key); | ||
640 | ret = 0; | ||
641 | goto out; | ||
642 | } | ||
643 | |||
644 | key->local = sdata->local; | ||
645 | key->sdata = sdata; | ||
646 | key->sta = sta; | ||
647 | |||
636 | increment_tailroom_need_count(sdata); | 648 | increment_tailroom_need_count(sdata); |
637 | 649 | ||
638 | ieee80211_key_replace(sdata, sta, pairwise, old_key, key); | 650 | ieee80211_key_replace(sdata, sta, pairwise, old_key, key); |
@@ -648,6 +660,7 @@ int ieee80211_key_link(struct ieee80211_key *key, | |||
648 | ret = 0; | 660 | ret = 0; |
649 | } | 661 | } |
650 | 662 | ||
663 | out: | ||
651 | mutex_unlock(&sdata->local->key_mtx); | 664 | mutex_unlock(&sdata->local->key_mtx); |
652 | 665 | ||
653 | return ret; | 666 | return ret; |