ath9k: fix keycache handling with many connected clients
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sat, 27 Apr 2013 09:56:18 +0000 (09:56 +0000)
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sat, 27 Apr 2013 09:56:18 +0000 (09:56 +0000)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@36467 3c298f89-4303-0410-b956-a3cf2f4a3e73

package/mac80211/patches/300-pending_work.patch

index d47c626..92bf897 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 {