|
|
|
@ -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 {
|
|
|
|
|