Patch "scsi: ufs: core: Exclude UECxx from SFR dump list" has been added to the 5.15-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: Exclude UECxx from SFR dump list

to the 5.15-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-exclude-uecxx-from-sfr-dump-list.patch
and it can be found in the queue-5.15 subdirectory.

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



commit 329e9e16e4dba5aadf2576248cb8d93d9e5352f3
Author: Kiwoong Kim <kwmad.kim@xxxxxxxxxxx>
Date:   Thu Mar 31 10:24:05 2022 +0900

    scsi: ufs: core: Exclude UECxx from SFR dump list
    
    [ Upstream commit ef60031022eb6d972aac86ca26c98c33e1289436 ]
    
    Some devices may return invalid or zeroed data during an UIC error
    condition. In addition, reading these SFRs will clear them. This means the
    subsequent error handling will not be able to see them and therefore no
    error handling will be scheduled.
    
    Skip reading these SFRs in ufshcd_dump_regs().
    
    Link: https://lore.kernel.org/r/1648689845-33521-1-git-send-email-kwmad.kim@xxxxxxxxxxx
    Fixes: d67247566450 ("scsi: ufs: Use explicit access size in ufshcd_dump_regs")
    Signed-off-by: Kiwoong Kim <kwmad.kim@xxxxxxxxxxx>
    Signed-off-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index b55e0a07363f..5c9a31f18b7f 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -112,8 +112,13 @@ int ufshcd_dump_regs(struct ufs_hba *hba, size_t offset, size_t len,
 	if (!regs)
 		return -ENOMEM;
 
-	for (pos = 0; pos < len; pos += 4)
+	for (pos = 0; pos < len; pos += 4) {
+		if (offset == 0 &&
+		    pos >= REG_UIC_ERROR_CODE_PHY_ADAPTER_LAYER &&
+		    pos <= REG_UIC_ERROR_CODE_DME)
+			continue;
 		regs[pos / 4] = ufshcd_readl(hba, offset + pos);
+	}
 
 	ufshcd_hex_dump(prefix, regs, len);
 	kfree(regs);



[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