ath9k: fix keycache handling with many connected clients
Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 36467
This commit is contained in:
parent
fab1ddff73
commit
6a2dd833cf
1 changed files with 27 additions and 0 deletions
|
@ -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 {
|
||||
|
|
Loading…
Reference in a new issue