Commit faf1dc64 authored by Rajkumar Manoharan's avatar Rajkumar Manoharan Committed by John W. Linville

ath9k_htc: Stop ANI before doing hw_reset

During remain on channel request, ANI worker thread is not stopped
before doing hw reset. This is causing kernel crash in
hw_per_calibration. This change ensures that ANI is stopped before
doing chip reset and it will be rescheduled later when the chip is
configured back to home channel and having valid bss.
Reported-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
Tested-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
Signed-off-by: default avatarRajkumar Manoharan <rmanohar@qti.qualcomm.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent eac94da8
...@@ -95,8 +95,10 @@ static void ath9k_htc_vif_iter(void *data, u8 *mac, struct ieee80211_vif *vif) ...@@ -95,8 +95,10 @@ static void ath9k_htc_vif_iter(void *data, u8 *mac, struct ieee80211_vif *vif)
if ((vif->type == NL80211_IFTYPE_AP || if ((vif->type == NL80211_IFTYPE_AP ||
vif->type == NL80211_IFTYPE_MESH_POINT) && vif->type == NL80211_IFTYPE_MESH_POINT) &&
bss_conf->enable_beacon) bss_conf->enable_beacon) {
priv->reconfig_beacon = true; priv->reconfig_beacon = true;
priv->rearm_ani = true;
}
if (bss_conf->assoc) { if (bss_conf->assoc) {
priv->rearm_ani = true; priv->rearm_ani = true;
...@@ -257,6 +259,7 @@ static int ath9k_htc_set_channel(struct ath9k_htc_priv *priv, ...@@ -257,6 +259,7 @@ static int ath9k_htc_set_channel(struct ath9k_htc_priv *priv,
ath9k_htc_ps_wakeup(priv); ath9k_htc_ps_wakeup(priv);
ath9k_htc_stop_ani(priv);
del_timer_sync(&priv->tx.cleanup_timer); del_timer_sync(&priv->tx.cleanup_timer);
ath9k_htc_tx_drain(priv); ath9k_htc_tx_drain(priv);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment