diff options
author | Govind Singh <govinds@codeaurora.org> | 2017-01-30 20:34:03 +0530 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-02-02 04:08:51 -0800 |
commit | 02ed94d5326a572e1104e0c2957497bd8ee5a557 (patch) | |
tree | d10592d5211c1e8caf1e268ba526bd8cd9b872fd /drivers/net | |
parent | 110e102fe3de3bf08fcdb3f2117530f632c5a99f (diff) |
ath10k: Fix STA disconnect issue
vdev params are being set after vdev is in down state, this
is resulting in firmware crash.
Fix this by skipping vdev access after vdev is in down state.
CRs-Fixed: 2000365
Change-Id: Ib15f038624682fb324fbd5c43fa5cddf462443cd
Signed-off-by: Govind Singh <govinds@codeaurora.org>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/wireless/ath/ath10k/core.c | 11 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath10k/mac.c | 12 |
2 files changed, 14 insertions, 9 deletions
diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c index bf77ac66c79e..7c4a9c23304c 100644 --- a/drivers/net/wireless/ath/ath10k/core.c +++ b/drivers/net/wireless/ath/ath10k/core.c @@ -1968,10 +1968,13 @@ int ath10k_core_start(struct ath10k *ar, enum ath10k_firmware_mode mode, * possible to implicitly make it correct by creating a dummy vdev and * then deleting it. */ - status = ath10k_core_reset_rx_filter(ar); - if (status) { - ath10k_err(ar, "failed to reset rx filter: %d\n", status); - goto err_hif_stop; + if (!QCA_REV_WCN3990(ar)) { + status = ath10k_core_reset_rx_filter(ar); + if (status) { + ath10k_err(ar, "failed to reset rx filter: %d\n", + status); + goto err_hif_stop; + } } /* If firmware indicates Full Rx Reorder support it must be used in a diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c index 7a5bfeea8f3d..4433780a61d2 100644 --- a/drivers/net/wireless/ath/ath10k/mac.c +++ b/drivers/net/wireless/ath/ath10k/mac.c @@ -2798,11 +2798,13 @@ static void ath10k_bss_disassoc(struct ieee80211_hw *hw, arvif->def_wep_key_idx = -1; - ret = ath10k_mac_vif_recalc_txbf(ar, vif, vht_cap); - if (ret) { - ath10k_warn(ar, "failed to recalc txbf for vdev %i: %d\n", - arvif->vdev_id, ret); - return; + if (!QCA_REV_WCN3990(ar)) { + ret = ath10k_mac_vif_recalc_txbf(ar, vif, vht_cap); + if (ret) { + ath10k_warn(ar, "failed to recalc txbf for vdev %i: %d\n", + arvif->vdev_id, ret); + return; + } } arvif->is_up = false; |