> -----Original Message----- > From: SEO HOYOUNG [mailto:hy50.seo@xxxxxxxxxxx] > Sent: Monday, May 23, 2022 2:19 AM > To: linux-scsi@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; > alim.akhtar@xxxxxxxxxxx; avri.altman@xxxxxxx; jejb@xxxxxxxxxxxxx; > martin.petersen@xxxxxxxxxx; beanhuo@xxxxxxxxxx; asutoshd@xxxxxxxxxxxxxx; > cang@xxxxxxxxxxxxxx; bvanassche@xxxxxxx; bhoon95.kim@xxxxxxxxxxx; > kwmad.kim@xxxxxxxxxxx > Cc: SEO HOYOUNG > Subject: [RESEND PATCH v1] scsi: ufs: Change the shutting_down flag > setting position > > When System shutdown, will called ufshcd_wl_shutdown(). > Then the shutting_down falg set to 1 at ufshcd_wl_shutdown(). > And send to SSU cmd at ufshcd_wl_shutdown()->__ufshcd_wl_suspend()-> > ufshcd_set_dev_pwr_mode() function. > > If occurred fail during send SSU cmd, > then will called ufshcd_err_handler for recovery. > But already set shutting_down to 1, so ufs driver could not recovery. > Then System wait for SSU cmd to be completed and eventaully it will tak > Hang. > So changed the position where shutting_down is set. > > Signed-off-by: SEO HOYOUNG <hy50.seo@xxxxxxxxxxx> > --- > drivers/scsi/ufs/ufshcd.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index > 1fb3a8b9b03e..65d47cd5afbe 100644 > --- a/drivers/scsi/ufs/ufshcd.c > +++ b/drivers/scsi/ufs/ufshcd.c > @@ -9235,10 +9235,6 @@ static void ufshcd_wl_shutdown(struct device *dev) > > hba = shost_priv(sdev->host); > > - down(&hba->host_sem); > - hba->shutting_down = true; > - up(&hba->host_sem); > - > /* Turn on everything while shutting down */ > ufshcd_rpm_get_sync(hba); > scsi_device_quiesce(sdev); > @@ -9248,6 +9244,10 @@ static void ufshcd_wl_shutdown(struct device *dev) > scsi_device_quiesce(sdev); > } > __ufshcd_wl_suspend(hba, UFS_SHUTDOWN_PM); > + > + down(&hba->host_sem); > + hba->shutting_down = true; > + up(&hba->host_sem); > } > > /** > -- > 2.26.0 Hi, It seems that same patch below this. https://lore.kernel.org/lkml/74cade30-6dde-c5f7-e009-b34423d22c12@xxxxxxxxx/ I think that will occurred error with called __ufshcd_wl_suspend(). So the hba->shutting_down need to set after call __ufshcd_wl_suspend(). Otherwise, the error_handler cannot operate when an error occurs. Please give opinion. Thanks.