From: Felix Fietkau Date: Mon, 27 Oct 2014 11:02:23 +0000 (+0000) Subject: mac80211: fix key flush handling in AP+STA X-Git-Tag: reboot~5506 X-Git-Url: http://git.openwrt.org/?a=commitdiff_plain;ds=sidebyside;h=e6da32c086c3cb22be14c348be7821e0c98a7566;p=openwrt%2Fopenwrt.git mac80211: fix key flush handling in AP+STA Signed-off-by: Felix Fietkau SVN-Revision: 43079 --- 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 +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 +--- + +--- 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,