]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
scsi: ufs: Try harder to change the power mode
authorBart Van Assche <bvanassche@acm.org>
Tue, 18 Oct 2022 20:29:55 +0000 (13:29 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Sat, 22 Oct 2022 03:25:59 +0000 (03:25 +0000)
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@acm.org>
Link: https://lore.kernel.org/r/20221018202958.1902564-8-bvanassche@acm.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/ufs/core/ufshcd.c

index f83a0045a129a3d9c5ad1ec819ae6ea70bf60f28..84ca17d29898e1aff6957f7eaa9ac677f5ccf9f5 100644 (file)
@@ -8776,9 +8776,11 @@ 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,
                                   HZ, 0, 0, RQF_PM, NULL);
-               if (!scsi_status_is_check_condition(ret) ||
-                               !scsi_sense_valid(&sshdr) ||
-                               sshdr.sense_key != UNIT_ATTENTION)
+               /*
+                * scsi_execute() only returns a negative value if the request
+                * queue is dying.
+                */
+               if (ret <= 0)
                        break;
        }
        if (ret) {