> > On 9/23/24 7:17 PM, Seunghwan Baek wrote:> That's because SSU (Start > > Stop > > Unit) command must be sent during > > > shutdown process. If SDEV_OFFLINE is set for wlun, SSU command > > > cannot be sent because it is rejected by the scsi layer. Therefore, > > > we consider to set SDEV_QUIESCE for wlun, and set SDEV_OFFLINE for > > > other lus. > > Right. Since ufshcd_wl_shutdown() is expected to stop all DMA related > > to the UFS host, shouldn't there be a scsi_device_quiesce(sdev) call > > after the __ufshcd_wl_suspend(hba, UFS_SHUTDOWN_PM) call? > > > > Thanks, > > > > Bart. > > Yes. __ufshcd_wl_suspend(hba, UFS_SHUTDOWN_PM) should be called after > scsi_device_quiesce(sdev). Generally, the SSU command is the last command > before UFS power off. Therefore, if __ufshcd_wl_suspend is performed > before scsi_device_quiesce, other commands may be performed after the SSU > command and UFS may not guarantee the operation of the SSU command, which > may cause other problems. This order must be guaranteed. > > And with SDEV_QUIESCE, deadlock issue cannot be avoided due to requeue. > We need to return the i/o error with SDEV_OFFLINE to avoid the mentioned > deadlock problem. (+ more CC added.) Dear All. Could you please update for this patch? If you have any opinions about this patch, share and comment it. Thanks. BRs.