Pārlūkot izejas kodu

Merge ath-current from ath.git

ath.git fixes for 4.8. Major changes:

ath9k

* fix regression in client mode beacon configuration
* fix a station pointer which resulted in spurious crashes
Kalle Valo 9 gadi atpakaļ
vecāks
revīzija
bb87f02b7e
1 mainītis faili ar 5 papildinājumiem un 4 dzēšanām
  1. 5 4
      drivers/net/wireless/ath/ath9k/main.c

+ 5 - 4
drivers/net/wireless/ath/ath9k/main.c

@@ -1154,6 +1154,7 @@ void ath9k_calculate_summary_state(struct ath_softc *sc,
 		bool changed = (iter_data.primary_sta != ctx->primary_sta);
 		bool changed = (iter_data.primary_sta != ctx->primary_sta);
 
 
 		if (iter_data.primary_sta) {
 		if (iter_data.primary_sta) {
+			iter_data.primary_beacon_vif = iter_data.primary_sta;
 			iter_data.beacons = true;
 			iter_data.beacons = true;
 			ath9k_set_assoc_state(sc, iter_data.primary_sta,
 			ath9k_set_assoc_state(sc, iter_data.primary_sta,
 					      changed);
 					      changed);
@@ -1563,13 +1564,13 @@ static int ath9k_sta_state(struct ieee80211_hw *hw,
 	struct ath_common *common = ath9k_hw_common(sc->sc_ah);
 	struct ath_common *common = ath9k_hw_common(sc->sc_ah);
 	int ret = 0;
 	int ret = 0;
 
 
-	if (old_state == IEEE80211_STA_AUTH &&
-	    new_state == IEEE80211_STA_ASSOC) {
+	if (old_state == IEEE80211_STA_NOTEXIST &&
+	    new_state == IEEE80211_STA_NONE) {
 		ret = ath9k_sta_add(hw, vif, sta);
 		ret = ath9k_sta_add(hw, vif, sta);
 		ath_dbg(common, CONFIG,
 		ath_dbg(common, CONFIG,
 			"Add station: %pM\n", sta->addr);
 			"Add station: %pM\n", sta->addr);
-	} else if (old_state == IEEE80211_STA_ASSOC &&
-		   new_state == IEEE80211_STA_AUTH) {
+	} else if (old_state == IEEE80211_STA_NONE &&
+		   new_state == IEEE80211_STA_NOTEXIST) {
 		ret = ath9k_sta_remove(hw, vif, sta);
 		ret = ath9k_sta_remove(hw, vif, sta);
 		ath_dbg(common, CONFIG,
 		ath_dbg(common, CONFIG,
 			"Remove station: %pM\n", sta->addr);
 			"Remove station: %pM\n", sta->addr);