Re: [PATCH v8 2/3] scsi: ufs: core: Hold host_sem in ufshcd_wl_poweroff()
From: Peter Wang
Date: Mon Nov 09 2026 - 04:46:35 EST
On Mon, 2026-11-09 at 13:09 +0900, HOYOUNG SEO wrote:
> diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c
> index 3b5580ac390c..1c935a8d016d 100644
> --- a/drivers/ufs/core/ufshcd.c
> +++ b/drivers/ufs/core/ufshcd.c
> @@ -11574,6 +11574,8 @@ static int ufshcd_wl_poweroff(struct device
> *dev)
> struct scsi_device *sdev = to_scsi_device(dev);
> struct ufs_hba *hba = shost_priv(sdev->host);
>
> + /* Released by ufshcd_wl_resume() if hibernation is aborted.
> */
> + down(&hba->host_sem);
> __ufshcd_wl_suspend(hba, UFS_SHUTDOWN_PM);
> return 0;
> }
Hi Hoyoung,
Although not checking the return value was an original
mistake, this patch would make the previous mistake worse
and cause a system hang. Could we at least add a check
to release the lock?
+ ret = __ufshcd_wl_suspend(hba, UFS_SHUTDOWN_PM);
+ if (ret)
+ up(&hba->host_sem);
Thanks
Peter