From: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
To: Bart Van Assche <bvanassche@acm.org>
Cc: "Martin K . Petersen" <martin.petersen@oracle.com>,
linux-scsi@vger.kernel.org,
"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
Avri Altman <avri.altman@wdc.com>,
Peter Wang <peter.wang@mediatek.com>,
Bean Huo <beanhuo@micron.com>,
Andrew Halaney <ahalaney@redhat.com>
Subject: Re: [PATCH 6/8] scsi: ufs: Make ufshcd_poll() complain about unsupported arguments
Date: Sun, 23 Jun 2024 19:09:05 +0530 [thread overview]
Message-ID: <20240623133905.GC58184@thinkpad> (raw)
In-Reply-To: <d88fcbfa-eb05-4b46-a452-2cd9e7897797@acm.org>
On Thu, Jun 20, 2024 at 01:13:10PM -0700, Bart Van Assche wrote:
> On 6/19/24 12:32 AM, Manivannan Sadhasivam wrote:
> > On Mon, Jun 17, 2024 at 02:07:45PM -0700, Bart Van Assche wrote:
> > > The ufshcd_poll() implementation does not support queue_num ==
> > > UFSHCD_POLL_FROM_INTERRUPT_CONTEXT in MCQ mode. Hence complain
> > > if queue_num == UFSHCD_POLL_FROM_INTERRUPT_CONTEXT in MCQ mode.
> > >
> > > Signed-off-by: Bart Van Assche <bvanassche@acm.org>
> > > ---
> > > drivers/ufs/core/ufshcd.c | 1 +
> > > 1 file changed, 1 insertion(+)
> > >
> > > diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c
> > > index 7761ccca2115..db374a788140 100644
> > > --- a/drivers/ufs/core/ufshcd.c
> > > +++ b/drivers/ufs/core/ufshcd.c
> > > @@ -5562,6 +5562,7 @@ static int ufshcd_poll(struct Scsi_Host *shost, unsigned int queue_num)
> > > struct ufs_hw_queue *hwq;
> > > if (is_mcq_enabled(hba)) {
> > > + WARN_ON_ONCE(queue_num == UFSHCD_POLL_FROM_INTERRUPT_CONTEXT);
> >
> > So what does the user has to do if this WARN_ON gets triggered? Can't we use
> > dev_err()/dev_warn() and return instead if the intention is to just report the
> > error or warning.
> >
> > I know that UFS code has WARN_ON sprinkled all over, but those should be audited
> > at some point and also the new additions.
> >
> > Also, this is a bug fix as it essentially fixes array out of the bounds issue.
> > So should have a fixes tag and CC stable list for backporting.
>
> No, this is not a bug fix. There is only one caller that passes the value
> UFSHCD_POLL_FROM_INTERRUPT_CONTEXT as the 'queue_num' argument and it is a code
> path that supports legacy mode (single queue mode). Since the above WARN_ON_ONCE()
> is in an MCQ code path, it will never be triggered. The above WARN_ON_ONCE() can
> be seen as a form of documentation and also as defensive programming. I think
> using WARN_ON_ONCE() to document which code paths will never be triggered is fine.
>
Why should we insert a warning in a dead code? WARN_ON* makes sense if a certain
condition is never expected to happen, but if that happens then most likely
something wrong happened seriously so the users should be warned.
But here I don't see a possibility to get this triggered at all. Please correct
me if I'm wrong.
- Mani
--
மணிவண்ணன் சதாசிவம்
next prev parent reply other threads:[~2024-06-23 13:39 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-17 21:07 [PATCH 0/8] UFS patches for kernel 6.11 Bart Van Assche
2024-06-17 21:07 ` [PATCH 1/8] scsi: ufs: Initialize struct uic_command once Bart Van Assche
2024-06-18 1:25 ` Daejun Park
2024-06-18 16:15 ` Bart Van Assche
2024-06-18 6:18 ` Avri Altman
2024-06-19 6:55 ` Manivannan Sadhasivam
2024-06-17 21:07 ` [PATCH 2/8] scsi: ufs: Remove two constants Bart Van Assche
2024-06-19 6:58 ` Manivannan Sadhasivam
2024-06-17 21:07 ` [PATCH 3/8] scsi: ufs: Inline ufshcd_mcq_vops_get_hba_mac() Bart Van Assche
2024-06-18 6:23 ` Avri Altman
2024-06-18 16:14 ` Bart Van Assche
2024-06-17 21:07 ` [PATCH 4/8] scsi: ufs: Make .get_hba_mac() optional Bart Van Assche
2024-06-18 1:28 ` Daejun Park
2024-06-18 16:17 ` Bart Van Assche
2024-06-19 7:13 ` Manivannan Sadhasivam
2024-06-19 7:57 ` Manivannan Sadhasivam
2024-06-21 3:32 ` Peter Wang (王信友)
2024-06-23 13:33 ` manivannan.sadhasivam
2024-06-24 8:39 ` Peter Wang (王信友)
2024-06-24 17:30 ` Bart Van Assche
2024-06-17 21:07 ` [PATCH 5/8] scsi: ufs: Declare ufshcd_mcq_poll_cqe_lock() once Bart Van Assche
2024-06-18 11:01 ` Avri Altman
2024-06-17 21:07 ` [PATCH 6/8] scsi: ufs: Make ufshcd_poll() complain about unsupported arguments Bart Van Assche
2024-06-19 7:32 ` Manivannan Sadhasivam
2024-06-20 20:13 ` Bart Van Assche
2024-06-23 13:39 ` Manivannan Sadhasivam [this message]
2024-06-17 21:07 ` [PATCH 7/8] scsi: ufs: Make the polling code report which command has been completed Bart Van Assche
2024-06-17 21:07 ` [PATCH 8/8] scsi: ufs: Check for completion from the timeout handler Bart Van Assche
2024-06-21 6:54 ` Peter Wang (王信友)
2024-06-21 17:23 ` Bart Van Assche
2024-06-24 8:54 ` Peter Wang (王信友)
2024-06-24 18:12 ` Bart Van Assche
2024-06-25 10:04 ` Peter Wang (王信友)
2024-06-25 16:33 ` Bart Van Assche
2024-06-26 3:54 ` Peter Wang (王信友)
2024-06-26 21:54 ` Bart Van Assche
2024-06-27 10:56 ` Peter Wang (王信友)
2024-06-27 16:33 ` Bart Van Assche
2024-06-27 3:50 ` Wenchao Hao
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=20240623133905.GC58184@thinkpad \
--to=manivannan.sadhasivam@linaro.org \
--cc=James.Bottomley@HansenPartnership.com \
--cc=ahalaney@redhat.com \
--cc=avri.altman@wdc.com \
--cc=beanhuo@micron.com \
--cc=bvanassche@acm.org \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=peter.wang@mediatek.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.