From 1d61c5b5a06a3a19c2cfcb84f7a907827875c829 Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Mon, 19 Sep 2022 15:20:43 -0700 Subject: [PATCH] Revert "FROMLIST: scsi: ufs: Fix deadlocks between power management and error handler" This reverts commit f68d040c318f8022628d89e794b78326b352a9fe. Patch "scsi: ufs: core: Reduce the power mode change timeout" caused a spike in the number of UFS suspend timeouts. Hence revert that change and also later UFS driver changes. Bug: b/246990788 Change-Id: Ic20594727d47dc6d9af9a320d64bd7011112e789 Signed-off-by: Bart Van Assche --- drivers/scsi/ufs/ufshcd.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index fb62a8210075..9ee325116902 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -9337,13 +9337,16 @@ static int ufshcd_wl_suspend(struct device *dev) ktime_t start = ktime_get(); hba = shost_priv(sdev->host); + down(&hba->host_sem); if (pm_runtime_suspended(dev)) goto out; ret = __ufshcd_wl_suspend(hba, UFS_SYSTEM_PM); - if (ret) + if (ret) { dev_err(&sdev->sdev_gendev, "%s failed: %d\n", __func__, ret); + up(&hba->host_sem); + } out: if (!ret) @@ -9376,6 +9379,7 @@ out: hba->curr_dev_pwr_mode, hba->uic_link_state); if (!ret) hba->is_sys_suspended = false; + up(&hba->host_sem); return ret; } #endif