aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2014-10-27 11:02:23 +0000
committerFelix Fietkau <nbd@openwrt.org>2014-10-27 11:02:23 +0000
commite6da32c086c3cb22be14c348be7821e0c98a7566 (patch)
treeec774161795b414a067efc667fb0a41aafe52748
parentba48074622ba4f756a7ca686a9aef43f490563e5 (diff)
downloadupstream-e6da32c086c3cb22be14c348be7821e0c98a7566.tar.gz
upstream-e6da32c086c3cb22be14c348be7821e0c98a7566.tar.bz2
upstream-e6da32c086c3cb22be14c348be7821e0c98a7566.zip
mac80211: fix key flush handling in AP+STA
Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 43079
-rw-r--r--package/kernel/mac80211/patches/110-mac80211_keep_keys_on_stop_ap.patch12
-rw-r--r--package/kernel/mac80211/patches/347-mac80211-flush-keys-for-AP-mode-on-ieee80211_do_stop.patch23
-rw-r--r--package/kernel/mac80211/patches/522-mac80211_configure_antenna_gain.patch4
3 files changed, 37 insertions, 2 deletions
diff --git a/package/kernel/mac80211/patches/110-mac80211_keep_keys_on_stop_ap.patch b/package/kernel/mac80211/patches/110-mac80211_keep_keys_on_stop_ap.patch
new file mode 100644
index 0000000000..d1d9fbd9b1
--- /dev/null
+++ b/package/kernel/mac80211/patches/110-mac80211_keep_keys_on_stop_ap.patch
@@ -0,0 +1,12 @@
+Used for AP+STA support in OpenWrt - preserve AP mode keys across STA reconnects
+
+--- a/net/mac80211/cfg.c
++++ b/net/mac80211/cfg.c
+@@ -846,7 +846,6 @@ static int ieee80211_stop_ap(struct wiph
+ sdata->u.ap.driver_smps_mode = IEEE80211_SMPS_OFF;
+
+ __sta_info_flush(sdata, true);
+- ieee80211_free_keys(sdata, true);
+
+ sdata->vif.bss_conf.enable_beacon = false;
+ sdata->vif.bss_conf.ssid_len = 0;
diff --git a/package/kernel/mac80211/patches/347-mac80211-flush-keys-for-AP-mode-on-ieee80211_do_stop.patch b/package/kernel/mac80211/patches/347-mac80211-flush-keys-for-AP-mode-on-ieee80211_do_stop.patch
new file mode 100644
index 0000000000..94cd7c112c
--- /dev/null
+++ b/package/kernel/mac80211/patches/347-mac80211-flush-keys-for-AP-mode-on-ieee80211_do_stop.patch
@@ -0,0 +1,23 @@
+From: Felix Fietkau <nbd@openwrt.org>
+Date: Mon, 27 Oct 2014 11:50:28 +0100
+Subject: [PATCH] mac80211: flush keys for AP mode on ieee80211_do_stop
+
+Userspace can add keys to an AP mode interface before start_ap has been
+called. If there have been no calls to start_ap/stop_ap in the mean
+time, the keys will still be around when the interface is brought down.
+
+Signed-off-by: Felix Fietkau <nbd@openwrt.org>
+---
+
+--- a/net/mac80211/iface.c
++++ b/net/mac80211/iface.c
+@@ -931,9 +931,6 @@ static void ieee80211_do_stop(struct iee
+ * another CPU.
+ */
+ ieee80211_free_keys(sdata, true);
+-
+- /* fall through */
+- case NL80211_IFTYPE_AP:
+ skb_queue_purge(&sdata->skb_queue);
+ }
+
diff --git a/package/kernel/mac80211/patches/522-mac80211_configure_antenna_gain.patch b/package/kernel/mac80211/patches/522-mac80211_configure_antenna_gain.patch
index ddf5ef624b..a6119c5544 100644
--- a/package/kernel/mac80211/patches/522-mac80211_configure_antenna_gain.patch
+++ b/package/kernel/mac80211/patches/522-mac80211_configure_antenna_gain.patch
@@ -57,7 +57,7 @@
__NL80211_ATTR_AFTER_LAST,
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
-@@ -2092,6 +2092,19 @@ static int ieee80211_get_tx_power(struct
+@@ -2091,6 +2091,19 @@ static int ieee80211_get_tx_power(struct
return 0;
}
@@ -77,7 +77,7 @@
static int ieee80211_set_wds_peer(struct wiphy *wiphy, struct net_device *dev,
const u8 *addr)
{
-@@ -3573,6 +3586,7 @@ const struct cfg80211_ops mac80211_confi
+@@ -3572,6 +3585,7 @@ const struct cfg80211_ops mac80211_confi
.set_wiphy_params = ieee80211_set_wiphy_params,
.set_tx_power = ieee80211_set_tx_power,
.get_tx_power = ieee80211_get_tx_power,