Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 44db4847 authored by Can Guo's avatar Can Guo
Browse files

ufs: ufs-qcom: Fix racing caused by ufs_qcom_testbus_config()



If func ufs_qcom_testbus_config() is invoked from ufshcd_suspend/resume
and/or clk gate/ungate context, pm_runtime_get_sync() and ufshcd_hold()
will flush the contexts calling ufs_qcom_testbus_config(), causing racing
problems. Fix it by removing the unnecessary calls of pm_runtime_get_sync()
and ufshcd_hold().

Change-Id: Iada1e777de0cafaf8c9b972fcace65399ea9668d
Signed-off-by: default avatarCan Guo <cang@codeaurora.org>
parent 4027c201
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -3015,8 +3015,6 @@ int ufs_qcom_testbus_config(struct ufs_qcom_host *host)
	mask <<= offset;

	spin_unlock_irqrestore(hba->host->host_lock, flags);
	pm_runtime_get_sync(host->hba->dev);
	ufshcd_hold(host->hba, false);
	ufshcd_rmwl(host->hba, TEST_BUS_SEL,
		    (u32)host->testbus.select_major << 19,
		    REG_UFS_CFG1);
@@ -3029,8 +3027,6 @@ int ufs_qcom_testbus_config(struct ufs_qcom_host *host)
	 * committed before returning.
	 */
	mb();
	ufshcd_release(host->hba);
	pm_runtime_put_sync(host->hba->dev);

	return 0;
}