Merge "ath10k: Send vdev down if association to bss fails"

This commit is contained in:
Linux Build Service Account 2017-06-15 22:59:06 -07:00 committed by Gerrit - the friendly Code Review server
commit c1f41f5290
2 changed files with 8 additions and 2 deletions

View file

@ -958,6 +958,7 @@ struct ath10k {
struct fw_flag *fw_flags;
/* set for bmi chip sets */
bool is_bmi;
enum ieee80211_sta_state sta_state;
/* must be last */
u8 drv_priv[0] __aligned(sizeof(void *));
};

View file

@ -5924,6 +5924,9 @@ static int ath10k_sta_state(struct ieee80211_hw *hw,
new_state == IEEE80211_STA_NOTEXIST))
cancel_work_sync(&arsta->update_wk);
if (vif->type == NL80211_IFTYPE_STATION && new_state > ar->sta_state)
ar->sta_state = new_state;
mutex_lock(&ar->conf_mutex);
if (old_state == IEEE80211_STA_NOTEXIST &&
@ -7392,8 +7395,9 @@ ath10k_mac_op_unassign_vif_chanctx(struct ieee80211_hw *hw,
ctx, arvif->vdev_id);
WARN_ON(!arvif->is_started);
if (vif->type == NL80211_IFTYPE_MONITOR) {
if (vif->type == NL80211_IFTYPE_MONITOR ||
(vif->type == NL80211_IFTYPE_STATION &&
ar->sta_state < IEEE80211_STA_ASSOC)) {
WARN_ON(!arvif->is_up);
ret = ath10k_wmi_vdev_down(ar, arvif->vdev_id);
@ -7409,6 +7413,7 @@ ath10k_mac_op_unassign_vif_chanctx(struct ieee80211_hw *hw,
ath10k_warn(ar, "failed to stop vdev %i: %d\n",
arvif->vdev_id, ret);
ar->sta_state = IEEE80211_STA_NOTEXIST;
arvif->is_started = false;
mutex_unlock(&ar->conf_mutex);