diff --git a/drivers/net/wireless/ath/ath10k/qmi.c b/drivers/net/wireless/ath/ath10k/qmi.c index 9bab797dcdbc..10223605b027 100644 --- a/drivers/net/wireless/ath/ath10k/qmi.c +++ b/drivers/net/wireless/ath/ath10k/qmi.c @@ -888,12 +888,13 @@ void ath10k_snoc_stop_qmi_service(struct ath10k *ar) ath10k_dbg(ar, ATH10K_DBG_SNOC, "Removing QMI service..\n"); + wake_up_all(&ath10k_fw_ready_wait_event); + cancel_work_sync(&qmi_cfg->event_work); + cancel_work_sync(&qmi_cfg->qmi_recv_msg_work); qmi_svc_event_notifier_unregister(WLFW_SERVICE_ID_V01, WLFW_SERVICE_VERS_V01, WLFW_SERVICE_INS_ID_V01, &qmi_cfg->wlfw_clnt_nb); - - wake_up_all(&ath10k_fw_ready_wait_event); destroy_workqueue(qmi_cfg->event_wq); qmi_cfg = NULL; } diff --git a/drivers/net/wireless/ath/ath10k/snoc.c b/drivers/net/wireless/ath/ath10k/snoc.c index 08618cedf775..0cc98e45b65c 100644 --- a/drivers/net/wireless/ath/ath10k/snoc.c +++ b/drivers/net/wireless/ath/ath10k/snoc.c @@ -1146,8 +1146,10 @@ static int ath10k_snoc_hif_power_up(struct ath10k *ar) if (ar->state == ATH10K_STATE_ON || test_bit(ATH10K_FLAG_CRASH_FLUSH, &ar->dev_flags)) { ret = ath10k_snoc_bus_configure(ar); - if (ret) + if (ret) { ath10k_err(ar, "failed to configure bus: %d\n", ret); + return ret; + } } ret = ath10k_snoc_init_pipes(ar); if (ret) {