|
@@ -2248,7 +2248,6 @@ static void iwl_mvm_sta_pre_rcu_remove(struct ieee80211_hw *hw,
|
|
struct ieee80211_sta *sta)
|
|
struct ieee80211_sta *sta)
|
|
{
|
|
{
|
|
struct iwl_mvm *mvm = IWL_MAC80211_GET_MVM(hw);
|
|
struct iwl_mvm *mvm = IWL_MAC80211_GET_MVM(hw);
|
|
- struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
|
|
|
|
struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta);
|
|
struct iwl_mvm_sta *mvm_sta = iwl_mvm_sta_from_mac80211(sta);
|
|
|
|
|
|
/*
|
|
/*
|
|
@@ -2264,11 +2263,6 @@ static void iwl_mvm_sta_pre_rcu_remove(struct ieee80211_hw *hw,
|
|
rcu_assign_pointer(mvm->fw_id_to_mac_id[mvm_sta->sta_id],
|
|
rcu_assign_pointer(mvm->fw_id_to_mac_id[mvm_sta->sta_id],
|
|
ERR_PTR(-ENOENT));
|
|
ERR_PTR(-ENOENT));
|
|
|
|
|
|
- if (mvm_sta->vif->type == NL80211_IFTYPE_AP) {
|
|
|
|
- mvmvif->ap_assoc_sta_count--;
|
|
|
|
- iwl_mvm_mac_ctxt_changed(mvm, vif, false, NULL);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
mutex_unlock(&mvm->mutex);
|
|
mutex_unlock(&mvm->mutex);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -2380,6 +2374,10 @@ static int iwl_mvm_mac_sta_state(struct ieee80211_hw *hw,
|
|
ret = 0;
|
|
ret = 0;
|
|
} else if (old_state == IEEE80211_STA_AUTH &&
|
|
} else if (old_state == IEEE80211_STA_AUTH &&
|
|
new_state == IEEE80211_STA_ASSOC) {
|
|
new_state == IEEE80211_STA_ASSOC) {
|
|
|
|
+ if (vif->type == NL80211_IFTYPE_AP) {
|
|
|
|
+ mvmvif->ap_assoc_sta_count++;
|
|
|
|
+ iwl_mvm_mac_ctxt_changed(mvm, vif, false, NULL);
|
|
|
|
+ }
|
|
ret = iwl_mvm_update_sta(mvm, vif, sta);
|
|
ret = iwl_mvm_update_sta(mvm, vif, sta);
|
|
if (ret == 0)
|
|
if (ret == 0)
|
|
iwl_mvm_rs_rate_init(mvm, sta,
|
|
iwl_mvm_rs_rate_init(mvm, sta,
|
|
@@ -2406,6 +2404,10 @@ static int iwl_mvm_mac_sta_state(struct ieee80211_hw *hw,
|
|
ret = 0;
|
|
ret = 0;
|
|
} else if (old_state == IEEE80211_STA_ASSOC &&
|
|
} else if (old_state == IEEE80211_STA_ASSOC &&
|
|
new_state == IEEE80211_STA_AUTH) {
|
|
new_state == IEEE80211_STA_AUTH) {
|
|
|
|
+ if (vif->type == NL80211_IFTYPE_AP) {
|
|
|
|
+ mvmvif->ap_assoc_sta_count--;
|
|
|
|
+ iwl_mvm_mac_ctxt_changed(mvm, vif, false, NULL);
|
|
|
|
+ }
|
|
ret = 0;
|
|
ret = 0;
|
|
} else if (old_state == IEEE80211_STA_AUTH &&
|
|
} else if (old_state == IEEE80211_STA_AUTH &&
|
|
new_state == IEEE80211_STA_NONE) {
|
|
new_state == IEEE80211_STA_NONE) {
|