ath9k: fix keycache handling with many connected clients
authorFelix Fietkau <nbd@openwrt.org>
Sat, 27 Apr 2013 09:56:18 +0000 (09:56 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Sat, 27 Apr 2013 09:56:18 +0000 (09:56 +0000)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 36467

package/mac80211/patches/300-pending_work.patch

index d47c6261efc82e6b4b39abd2f30721531f81fe1e..92bf897b2a7f85100985d38d5861a9762aaf4117 100644 (file)
  }
  
  /* 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 {