aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Stultz <john.stultz@linaro.org>2020-06-02 05:13:42 +0000
committerJohn Stultz <john.stultz@linaro.org>2021-05-10 19:53:27 +0000
commitc6898ced8d40e40c4a2a87decc4573c1b25d358e (patch)
tree7877c1560d0236ab7e0e43e88b6651af3742cfec
parent6adfc5aa660e7e473f9138b7de4696c7be8d8f5d (diff)
downloadandroid-dev-c6898ced8d40e40c4a2a87decc4573c1b25d358e.tar.gz
wireless: ath10k: Return early in ath10k_qmi_event_server_exit() to avoid hard crash on reboot
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.c5
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 07e478f9a808..00265a2512e5 100644
--- a/drivers/net/wireless/ath/ath10k/qmi.c
+++ b/drivers/net/wireless/ath/ath10k/qmi.c
@@ -862,6 +862,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))