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