From: Felix Fietkau Date: Sat, 27 Apr 2013 09:56:18 +0000 (+0000) Subject: ath9k: fix keycache handling with many connected clients X-Git-Tag: reboot~10565 X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=6a2dd833cf45b38dbef679b38032b6ad00d0d9b3;p=openwrt%2Fstaging%2Fxback.git ath9k: fix keycache handling with many connected clients Signed-off-by: Felix Fietkau SVN-Revision: 36467 --- 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 {