Patch "scsi: ufs: core: Fix MCQ mode dev command timeout" has been added to the 6.8-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    scsi: ufs: core: Fix MCQ mode dev command timeout

to the 6.8-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     scsi-ufs-core-fix-mcq-mode-dev-command-timeout.patch
and it can be found in the queue-6.8 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 8e9059d92cc61cfd1da5fcdcdaae81cfe989f80f
Author: Peter Wang <peter.wang@xxxxxxxxxxxx>
Date:   Thu Mar 28 19:12:44 2024 +0800

    scsi: ufs: core: Fix MCQ mode dev command timeout
    
    [ Upstream commit 2a26a11e9c258b14be6fd98f8a85f20ac1fff66e ]
    
    When a dev command times out in MCQ mode, a successfully cleared command
    should cause a retry. However, because we currently return 0, the caller
    considers the command a success which causes the following error to be
    logged: "Invalid offset 0x0 in descriptor IDN 0x9, length 0x0".
    
    Retry if clearing the command was successful.
    
    Signed-off-by: Peter Wang <peter.wang@xxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20240328111244.3599-1-peter.wang@xxxxxxxxxxxx
    Reviewed-by: Bart Van Assche <bvanassche@xxxxxxx>
    Signed-off-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c
index 14a6a100fcdb0..4a07a18cf835d 100644
--- a/drivers/ufs/core/ufshcd.c
+++ b/drivers/ufs/core/ufshcd.c
@@ -3172,7 +3172,9 @@ static int ufshcd_wait_for_dev_cmd(struct ufs_hba *hba,
 
 		/* MCQ mode */
 		if (is_mcq_enabled(hba)) {
-			err = ufshcd_clear_cmd(hba, lrbp->task_tag);
+			/* successfully cleared the command, retry if needed */
+			if (ufshcd_clear_cmd(hba, lrbp->task_tag) == 0)
+				err = -EAGAIN;
 			hba->dev_cmd.complete = NULL;
 			return err;
 		}




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux