On 30/09/22 01:00, Bart Van Assche wrote: > Instead of only retrying the START STOP UNIT command if a unit attention > is reported, repeat it if any SCSI error is reported by the device or if > the command timed out. > > Signed-off-by: Bart Van Assche <bvanassche@xxxxxxx> > --- > drivers/ufs/core/ufshcd.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c > index 02e73208b921..e8c0504e9e83 100644 > --- a/drivers/ufs/core/ufshcd.c > +++ b/drivers/ufs/core/ufshcd.c > @@ -8784,9 +8784,9 @@ static int ufshcd_set_dev_pwr_mode(struct ufs_hba *hba, > for (retries = 3; retries > 0; --retries) { > ret = scsi_execute(sdp, cmd, DMA_NONE, NULL, 0, NULL, &sshdr, > START_STOP_TIMEOUT, 0, 0, RQF_PM, NULL); > - if (!scsi_status_is_check_condition(ret) || > - !scsi_sense_valid(&sshdr) || > - sshdr.sense_key != UNIT_ATTENTION) > + if (ret < 0) > + break; Could use a comment to answer: why not retry if ret < 0 ? > + if (host_byte(ret) == 0 && scsi_status_is_good(ret)) > break; Also could use a comment: why not just "if (!ret)" ? > } > if (ret) {