Просмотр исходного кода

ath9k: fix keycache handling with many connected clients

Signed-off-by: Felix Fietkau <[email protected]>

SVN-Revision: 36467
Felix Fietkau 12 лет назад
Родитель
Сommit
6a2dd833cf
1 измененных файлов с 27 добавлено и 0 удалено
  1. 27 0
      package/mac80211/patches/300-pending_work.patch

+ 27 - 0
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 {