ath10k: cancel coverage class work during stop and restart
It seems set_coverage_class_work is not cancelled anywhere, though I could not find a crash/warning with this existing design, its safer to cancel it during stop() and also before restarting the hardware. Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qti.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
This commit is contained in:
parent
fefcd11535
commit
d94475c2f9
|
@ -1627,6 +1627,13 @@ static void ath10k_core_restart(struct work_struct *work)
|
|||
wake_up(&ar->wmi.tx_credits_wq);
|
||||
wake_up(&ar->peer_mapping_wq);
|
||||
|
||||
/* TODO: We can have one instance of cancelling coverage_class_work by
|
||||
* moving it to ath10k_halt(), so that both stop() and restart() would
|
||||
* call that but it takes conf_mutex() and if we call cancel_work_sync()
|
||||
* with conf_mutex it will deadlock.
|
||||
*/
|
||||
cancel_work_sync(&ar->set_coverage_class_work);
|
||||
|
||||
mutex_lock(&ar->conf_mutex);
|
||||
|
||||
switch (ar->state) {
|
||||
|
|
|
@ -4717,6 +4717,7 @@ static void ath10k_stop(struct ieee80211_hw *hw)
|
|||
}
|
||||
mutex_unlock(&ar->conf_mutex);
|
||||
|
||||
cancel_work_sync(&ar->set_coverage_class_work);
|
||||
cancel_delayed_work_sync(&ar->scan.timeout);
|
||||
cancel_work_sync(&ar->restart_work);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue