Răsfoiți Sursa

mac80211: fix key flush handling in AP+STA

Signed-off-by: Felix Fietkau <[email protected]>

SVN-Revision: 43079
Felix Fietkau 11 ani în urmă
părinte
comite
e6da32c086

+ 12 - 0
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;

+ 23 - 0
package/kernel/mac80211/patches/347-mac80211-flush-keys-for-AP-mode-on-ieee80211_do_stop.patch

@@ -0,0 +1,23 @@
+From: Felix Fietkau <[email protected]>
+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 <[email protected]>
+---
+
+--- 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);
+ 	}
+ 

+ 2 - 2
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,