diff options
author | John Stultz <john.stultz@linaro.org> | 2020-06-02 05:13:42 +0000 |
---|---|---|
committer | John Stultz <john.stultz@linaro.org> | 2020-08-03 17:49:47 +0000 |
commit | 6dd40454fc650d6160ce5123831f5d9fd4f73f76 (patch) | |
tree | 3db891efb9e194e848fd37bc672d73e1a13f5c7a | |
parent | ee7f20a8ce1b862a851af2f524b8a35f0ecd9b49 (diff) |
wireless: ath10k: Return early in ath10k_qmi_event_server_exit() to avoid hard crash on rebootjstultz/dev/db845c-v5.8
Ever since 5.7-rc1, if we call
ath10k_qmi_remove_msa_permission(), the db845c hard crashes on
reboot, resulting in the device getting stuck in the usb crash
debug mode and not coming back up wihthout a hard power off.
This hack avoids the issue by returning early in
ath10k_qmi_event_server_exit().
A better solution is very much desired!
Feedback and suggestions welcome!
Cc: Rakesh Pillai <pillair@qti.qualcomm.com>
Cc: Govind Singh <govinds@codeaurora.org>
Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
Cc: Niklas Cassel <niklas.cassel@linaro.org>
Cc: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Cc: Amit Pundir <amit.pundir@linaro.org>
Cc: Brian Norris <briannorris@chromium.org>
Cc: Kalle Valo <kvalo@codeaurora.org>
Cc: ath10k@lists.infradead.org
Reported-by: Amit Pundir <amit.pundir@linaro.org>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Change-Id: Id9bfedc8d7b0a5a15e03097e2d7413889b9e3b51
-rw-r--r-- | drivers/net/wireless/ath/ath10k/qmi.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath10k/qmi.c b/drivers/net/wireless/ath/ath10k/qmi.c index 5468a41e928e..0dee1353d395 100644 --- a/drivers/net/wireless/ath/ath10k/qmi.c +++ b/drivers/net/wireless/ath/ath10k/qmi.c @@ -854,6 +854,11 @@ static void ath10k_qmi_event_server_exit(struct ath10k_qmi *qmi) struct ath10k *ar = qmi->ar; struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); + /* + * HACK: Calling ath10k_qmi_remove_msa_permission causes + * hardware to hard crash on reboot + */ + return; ath10k_qmi_remove_msa_permission(qmi); ath10k_core_free_board_files(ar); if (!test_bit(ATH10K_SNOC_FLAG_UNREGISTERING, &ar_snoc->flags)) |