aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2013-04-27 09:56:18 +0000
committerFelix Fietkau <nbd@openwrt.org>2013-04-27 09:56:18 +0000
commit6a2dd833cf45b38dbef679b38032b6ad00d0d9b3 (patch)
treeedfa6cb74761d07a33663799eee3586b8a4bff3b
parentfab1ddff733b47a9d1180b05e8b0a450392eff34 (diff)
downloadupstream-6a2dd833cf45b38dbef679b38032b6ad00d0d9b3.tar.gz
upstream-6a2dd833cf45b38dbef679b38032b6ad00d0d9b3.tar.bz2
upstream-6a2dd833cf45b38dbef679b38032b6ad00d0d9b3.zip
ath9k: fix keycache handling with many connected clients
Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 36467
-rw-r--r--package/mac80211/patches/300-pending_work.patch27
1 files changed, 27 insertions, 0 deletions
diff --git a/package/mac80211/patches/300-pending_work.patch b/package/mac80211/patches/300-pending_work.patch
index d47c6261ef..92bf897b2a 100644
--- a/package/mac80211/patches/300-pending_work.patch
+++ b/package/mac80211/patches/300-pending_work.patch
@@ -76,6 +76,33 @@
}
/* Called with sc->mutex held. */
+@@ -1327,6 +1332,7 @@ static int ath9k_sta_add(struct ieee8021
+ struct ath_common *common = ath9k_hw_common(sc->sc_ah);
+ struct ath_node *an = (struct ath_node *) sta->drv_priv;
+ struct ieee80211_key_conf ps_key = { };
++ int key;
+
+ ath_node_attach(sc, sta, vif);
+
+@@ -1334,7 +1340,9 @@ static int ath9k_sta_add(struct ieee8021
+ vif->type != NL80211_IFTYPE_AP_VLAN)
+ return 0;
+
+- an->ps_key = ath_key_config(common, vif, sta, &ps_key);
++ key = ath_key_config(common, vif, sta, &ps_key);
++ if (key > 0)
++ an->ps_key = key;
+
+ return 0;
+ }
+@@ -1351,6 +1359,7 @@ static void ath9k_del_ps_key(struct ath_
+ return;
+
+ ath_key_delete(common, &ps_key);
++ an->ps_key = 0;
+ }
+
+ static int ath9k_sta_remove(struct ieee80211_hw *hw,
--- a/drivers/net/wireless/ath/ath9k/reg.h
+++ b/drivers/net/wireless/ath/ath9k/reg.h
@@ -1493,9 +1493,6 @@ enum {