]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
scsi: ufs: core: Initialize value of an attribute returned by uic cmd
authorWonkon Kim <wkon.kim@samsung.com>
Mon, 20 Oct 2025 06:15:38 +0000 (15:15 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 13 Nov 2025 20:33:57 +0000 (15:33 -0500)
[ Upstream commit 6fe4c679dde3075cb481beb3945269bb2ef8b19a ]

If ufshcd_send_cmd() fails, *mib_val may have a garbage value. It can
get an unintended value of an attribute.

Make ufshcd_dme_get_attr() always initialize *mib_val.

Fixes: 12b4fdb4f6bc ("[SCSI] ufs: add dme configuration primitives")
Signed-off-by: Wonkon Kim <wkon.kim@samsung.com>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Link: https://patch.msgid.link/20251020061539.28661-2-wkon.kim@samsung.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/ufs/core/ufshcd.c

index e079cb5d9ec690a10bd749d63a7d24fc14dd8f58..2d07902ce7f1b5852a42db8f1f3e406348716a36 100644 (file)
@@ -4239,8 +4239,8 @@ int ufshcd_dme_get_attr(struct ufs_hba *hba, u32 attr_sel,
                        get, UIC_GET_ATTR_ID(attr_sel),
                        UFS_UIC_COMMAND_RETRIES - retries);
 
-       if (mib_val && !ret)
-               *mib_val = uic_cmd.argument3;
+       if (mib_val)
+               *mib_val = ret == 0 ? uic_cmd.argument3 : 0;
 
        if (peer && (hba->quirks & UFSHCD_QUIRK_DME_PEER_ACCESS_AUTO_MODE)
            && pwr_mode_change)