From: Peter Wang <peter.wang@mediatek.com>
To: Stanley Jhu <stanleyjhu@google.com>,
"Martin K . Petersen" <mkp@kernel.org>,
<linux-scsi@vger.kernel.org>
Cc: "James E . J . Bottomley" <James.Bottomley@HansenPartnership.com>,
"Bart Van Assche" <bvanassche@acm.org>,
Alim Akhtar <alim.akhtar@samsung.com>,
Bean Huo <beanhuo@micron.com>, Can Guo <can.guo@oss.qualcomm.com>,
<linux-kernel@vger.kernel.org>, <stable@vger.kernel.org>
Subject: Re: [PATCH v4 6/6] scsi: ufs: core: Do not release a reserved request in ufshcd_abort()
Date: Wed, 21 Oct 2026 21:10:02 +0800 [thread overview]
Message-ID: <d286f784b3aa4d90e151a195b316613fa282fd02.camel@mediatek.com> (raw)
In-Reply-To: <20261021040615.3566831-4-stanleyjhu@google.com>
On Wed, 2026-10-21 at 12:06 +0800, Stanley Jhu wrote:
> In SDB mode, aborting a timed-out device management request drops a
> clock hold that the request never took:
>
> 1. ufshcd_dev_man_lock() takes one ufshcd_hold() for the whole device
> management command. ufshcd_queue_reserved_command() submits the
> request without taking a hold of its own.
> 2. The request times out and ufshcd_abort() clears its slot with
> ufshcd_clear_cmd().
> 3. ufshcd_abort() claims BIT(tag) in hba->outstanding_reqs and calls
> ufshcd_release_scsi_cmd(), which calls ufshcd_release() for a hold
> the request never took.
> 4. When ufshcd_dev_man_unlock() drops the hold from step 1,
> hba->clk_gating.active_reqs goes below zero.
>
> Release the command only if it is a SCSI command.
>
> Fixes: 08b12cda6c44 ("scsi: ufs: core: Switch to
> scsi_get_internal_cmd()")
> Cc: stable@vger.kernel.org
> Link:
> https://lore.kernel.org/r/2060a8da-581b-46d1-a510-779f4df716cd@acm.org
>
> Reviewed-by: Bart Van Assche <bvanassche@acm.org>
> Signed-off-by: Stanley Jhu <stanleyjhu@google.com>
> ---
Reviewed-by: Peter Wang <peter.wang@mediatek.com>
prev parent reply other threads:[~2026-10-21 13:10 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-21 3:54 [PATCH v4 0/6] scsi: ufs: core: Factor hba->outstanding_reqs helper and fix double completions Stanley Jhu
2026-10-21 3:54 ` [PATCH v4 1/6] scsi: ufs: core: Remove an always-false WARN_ONCE() Stanley Jhu
2026-10-21 3:54 ` [PATCH v4 2/6] scsi: ufs: core: Add a helper for clearing hba->outstanding_reqs Stanley Jhu
2026-10-21 4:06 ` [PATCH v4 3/6] scsi: ufs: core: Fix double completion in ufshcd_clear_lu_cmds() Stanley Jhu
2026-10-21 4:06 ` [PATCH v4 4/6] scsi: ufs: core: Fix double release in ufshcd_eh_timed_out() Stanley Jhu
2026-10-21 13:09 ` Peter Wang
2026-10-21 4:06 ` [PATCH v4 5/6] scsi: ufs: core: Fix double release in ufshcd_abort() Stanley Jhu
2026-10-21 13:12 ` Peter Wang
2026-10-21 13:28 ` Stanley Jhu
2026-10-21 16:37 ` Bart Van Assche
2026-10-22 3:44 ` Stanley Jhu
2026-10-22 9:09 ` Peter Wang
2026-10-22 9:07 ` Peter Wang
2026-10-21 4:06 ` [PATCH v4 6/6] scsi: ufs: core: Do not release a reserved request " Stanley Jhu
2026-10-21 13:10 ` Peter Wang [this message]
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=d286f784b3aa4d90e151a195b316613fa282fd02.camel@mediatek.com \
--to=peter.wang@mediatek.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=alim.akhtar@samsung.com \
--cc=beanhuo@micron.com \
--cc=bvanassche@acm.org \
--cc=can.guo@oss.qualcomm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=mkp@kernel.org \
--cc=stable@vger.kernel.org \
--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.