From: sashiko-bot@kernel.org
To: "Stanley Jhu" <stanleyjhu@google.com>
Cc: linux-scsi@vger.kernel.org
Subject: Re: [PATCH 3/3] scsi: ufs: core: Clear stale UIC result byte before peer DME retries
Date: Tue, 13 Oct 2026 10:41:55 +0000 [thread overview]
Message-ID: <sashiko-outbox-169530@kernel.org> (raw)
In-Reply-To: <20261013102913.948718-4-stanleyjhu@google.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] scsi: ufs: dme_set retry loop reuses potentially corrupted argument3
--
commit b7bd98803047d25927dcd2349ce8724199680d23
Author: Stanley Jhu <stanleyjhu@google.com>
scsi: ufs: core: Clear stale UIC result byte before peer DME retries
Peer DME get and set retry a failed attempt with the same struct
uic_command. This commit clears the result byte in argument2 before
each attempt to prevent transient failures from becoming hard failures
due to stale error codes.
Fixes: 64238fbd15ea ("scsi: ufs: add retries to dme_peer get and set attribute")
Cc: stable@vger.kernel.org
Signed-off-by: Stanley Jhu <stanleyjhu@google.com>
> diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c
> index cc75384c65021..1f254402d3b4b 100644
> --- a/drivers/ufs/core/ufshcd.c
> +++ b/drivers/ufs/core/ufshcd.c
> @@ -4398,6 +4398,7 @@ int ufshcd_dme_set_attr(struct ufs_hba *hba, u32 attr_sel,
> int retries = UFS_UIC_COMMAND_RETRIES;
>
> do {
> + uic_cmd.argument2 &= ~MASK_UIC_COMMAND_RESULT;
[Severity: Medium]
When ufshcd_send_uic_cmd() fails, does the completion handler overwrite
argument3?
Looking at ufshcd_uic_cmd_compl(), it appears argument3 is unconditionally
updated with the hardware register's contents:
ufshcd_uic_cmd_compl() {
...
/* Store the DME attribute value in cmd->argument3. */
cmd->argument3 = ufshcd_readl(hba, REG_UIC_COMMAND_ARG_3);
...
}
Since uic_cmd.argument3 is initialized to mib_val only once outside the
retry loop in ufshcd_dme_set_attr(), can this regression cause a subsequent
retry to write whatever value the hardware left in the register during the
failure?
Should uic_cmd.argument3 be restored to mib_val before retrying, similar
to how argument2 is cleared here?
> /* for peer attributes we retry upon failure */
> ret = ufshcd_send_uic_cmd(hba, &uic_cmd);
> if (ret)
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261013102913.948718-1-stanleyjhu@google.com?part=3
next prev parent reply other threads:[~2026-10-13 10:41 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-13 10:29 [PATCH 0/3] scsi: ufs: Fix UIC result byte and BSG request length handling Stanley Jhu
2026-10-13 10:29 ` [PATCH 1/3] scsi: ufs: bsg: Validate request_len before accessing request Stanley Jhu
2026-10-13 10:44 ` sashiko-bot
2026-10-13 10:29 ` [PATCH 2/3] scsi: ufs: bsg: Clear the UIC result byte before sending UIC commands Stanley Jhu
2026-10-13 10:29 ` [PATCH 3/3] scsi: ufs: core: Clear stale UIC result byte before peer DME retries Stanley Jhu
2026-10-13 10:41 ` sashiko-bot [this message]
2026-10-13 10:48 ` Stanley Jhu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=sashiko-outbox-169530@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
--cc=stanleyjhu@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.