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 <pill...@qti.qualcomm.com> Cc: Govind Singh <govi...@codeaurora.org> Cc: Bjorn Andersson <bjorn.anders...@linaro.org> Cc: Niklas Cassel <niklas.cas...@linaro.org> Cc: Manivannan Sadhasivam <manivannan.sadhasi...@linaro.org> Cc: Amit Pundir <amit.pun...@linaro.org> Cc: Brian Norris <briannor...@chromium.org> Cc: Kalle Valo <kv...@codeaurora.org> Cc: ath...@lists.infradead.org Reported-by: Amit Pundir <amit.pun...@linaro.org> Signed-off-by: John Stultz <john.stu...@linaro.org> --- drivers/net/wireless/ath/ath10k/qmi.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/net/wireless/ath/ath10k/qmi.c b/drivers/net/wireless/ath/ath10k/qmi.c index 85dce43c5439..ab38562ce1cb 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)) -- 2.17.1