Merge "ath10k: Send vdev down if association to bss fails"
This commit is contained in:
commit
c1f41f5290
2 changed files with 8 additions and 2 deletions
|
@ -958,6 +958,7 @@ struct ath10k {
|
||||||
struct fw_flag *fw_flags;
|
struct fw_flag *fw_flags;
|
||||||
/* set for bmi chip sets */
|
/* set for bmi chip sets */
|
||||||
bool is_bmi;
|
bool is_bmi;
|
||||||
|
enum ieee80211_sta_state sta_state;
|
||||||
/* must be last */
|
/* must be last */
|
||||||
u8 drv_priv[0] __aligned(sizeof(void *));
|
u8 drv_priv[0] __aligned(sizeof(void *));
|
||||||
};
|
};
|
||||||
|
|
|
@ -5924,6 +5924,9 @@ static int ath10k_sta_state(struct ieee80211_hw *hw,
|
||||||
new_state == IEEE80211_STA_NOTEXIST))
|
new_state == IEEE80211_STA_NOTEXIST))
|
||||||
cancel_work_sync(&arsta->update_wk);
|
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);
|
mutex_lock(&ar->conf_mutex);
|
||||||
|
|
||||||
if (old_state == IEEE80211_STA_NOTEXIST &&
|
if (old_state == IEEE80211_STA_NOTEXIST &&
|
||||||
|
@ -7392,8 +7395,9 @@ ath10k_mac_op_unassign_vif_chanctx(struct ieee80211_hw *hw,
|
||||||
ctx, arvif->vdev_id);
|
ctx, arvif->vdev_id);
|
||||||
|
|
||||||
WARN_ON(!arvif->is_started);
|
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);
|
WARN_ON(!arvif->is_up);
|
||||||
|
|
||||||
ret = ath10k_wmi_vdev_down(ar, arvif->vdev_id);
|
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",
|
ath10k_warn(ar, "failed to stop vdev %i: %d\n",
|
||||||
arvif->vdev_id, ret);
|
arvif->vdev_id, ret);
|
||||||
|
|
||||||
|
ar->sta_state = IEEE80211_STA_NOTEXIST;
|
||||||
arvif->is_started = false;
|
arvif->is_started = false;
|
||||||
|
|
||||||
mutex_unlock(&ar->conf_mutex);
|
mutex_unlock(&ar->conf_mutex);
|
||||||
|
|
Loading…
Add table
Reference in a new issue