From: "Peter Wang (王信友)" <peter.wang@mediatek.com>
To: "bvanassche@acm.org" <bvanassche@acm.org>,
"martin.petersen@oracle.com" <martin.petersen@oracle.com>
Cc: "linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>,
"James.Bottomley@HansenPartnership.com"
<James.Bottomley@HansenPartnership.com>,
"avri.altman@wdc.com" <avri.altman@wdc.com>,
"beanhuo@micron.com" <beanhuo@micron.com>,
"ahalaney@redhat.com" <ahalaney@redhat.com>,
"manivannan.sadhasivam@linaro.org"
<manivannan.sadhasivam@linaro.org>
Subject: Re: [PATCH 1/2] scsi: ufs: core: Make ufshcd_uic_cmd_compl() easier to read
Date: Thu, 22 Aug 2024 05:34:45 +0000 [thread overview]
Message-ID: <50e21f3e873c19da78b108b0352a8aa6cf95907e.camel@mediatek.com> (raw)
In-Reply-To: <20240821182923.145631-2-bvanassche@acm.org>
On Wed, 2024-08-21 at 11:29 -0700, Bart Van Assche wrote:
>
> External email : Please do not click links or open attachments until
> you have verified the sender or the content.
> Introduce a local variable for the expression hba->active_uic_cmd.
> Remove superfluous parentheses.
>
> Signed-off-by: Bart Van Assche <bvanassche@acm.org>
> ---
> drivers/ufs/core/ufshcd.c | 21 ++++++++++-----------
> 1 file changed, 10 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c
> index 0dd26059f5d7..d0ae6e50becc 100644
> --- a/drivers/ufs/core/ufshcd.c
> +++ b/drivers/ufs/core/ufshcd.c
> @@ -5464,31 +5464,30 @@ static bool
> ufshcd_is_auto_hibern8_error(struct ufs_hba *hba,
> static irqreturn_t ufshcd_uic_cmd_compl(struct ufs_hba *hba, u32
> intr_status)
> {
> irqreturn_t retval = IRQ_NONE;
> + struct uic_command *cmd;
>
> spin_lock(hba->host->host_lock);
> + cmd = hba->active_uic_cmd;
> if (ufshcd_is_auto_hibern8_error(hba, intr_status))
> hba->errors |= (UFSHCD_UIC_HIBERN8_MASK & intr_status);
>
> - if ((intr_status & UIC_COMMAND_COMPL) && hba->active_uic_cmd) {
> - hba->active_uic_cmd->argument2 |=
> - ufshcd_get_uic_cmd_result(hba);
> - hba->active_uic_cmd->argument3 =
> - ufshcd_get_dme_attr_val(hba);
> + if (intr_status & UIC_COMMAND_COMPL && cmd) {
>
Hi Bart,
in C language, when conditional expressions become complex,
using parentheses can help improve the readability of the
code and clearly specify the precedence of operators.
This is very important because different operators,
such as logical operators && and ||, comparison operators
==, !=, <, >, etc., have different levels of precedence.
Without using parentheses to clarify, it could lead to
unexpected results.
For example, consider the following complex conditional expression:
if (a == b && c > d || e < f && g != h)
While this conditional expression is valid, its order of
operations might not be immediately clear. Using parentheses
can help others reading the code (including your future self)
to understand your intent more easily:
if ((a == b && c > d) || (e < f && g != h))
In this example, the parentheses clearly indicate that the
&& operations are to be evaluated first, followed by the ||
operation. This avoids confusion caused by operator precedence
and makes the logic of the code more explicit. Therefore,
it is a good practice to use parentheses when dealing with
complex conditional expressions.
Thanks.
Peter
> + cmd->argument2 |= ufshcd_get_uic_cmd_result(hba);
> + cmd->argument3 = ufshcd_get_dme_attr_val(hba);
> if (!hba->uic_async_done)
> - hba->active_uic_cmd->cmd_active = 0;
> - complete(&hba->active_uic_cmd->done);
> + cmd->cmd_active = 0;
> + complete(&cmd->done);
> retval = IRQ_HANDLED;
> }
>
> - if ((intr_status & UFSHCD_UIC_PWR_MASK) && hba->uic_async_done)
> {
> - hba->active_uic_cmd->cmd_active = 0;
> + if (intr_status & UFSHCD_UIC_PWR_MASK && hba->uic_async_done) {
> + cmd->cmd_active = 0;
> complete(hba->uic_async_done);
> retval = IRQ_HANDLED;
> }
>
> if (retval == IRQ_HANDLED)
> - ufshcd_add_uic_command_trace(hba, hba->active_uic_cmd,
> - UFS_CMD_COMP);
> + ufshcd_add_uic_command_trace(hba, cmd, UFS_CMD_COMP);
> spin_unlock(hba->host->host_lock);
> return retval;
> }
next prev parent reply other threads:[~2024-08-22 5:34 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-21 18:29 [PATCH 0/2] Fix the UFS driver hibernation code Bart Van Assche
2024-08-21 18:29 ` [PATCH 1/2] scsi: ufs: core: Make ufshcd_uic_cmd_compl() easier to read Bart Van Assche
2024-08-21 21:27 ` Bean Huo
2024-08-22 5:34 ` Peter Wang (王信友) [this message]
2024-08-22 17:02 ` Bart Van Assche
2024-08-23 2:54 ` Peter Wang (王信友)
2024-08-26 6:25 ` Dan Carpenter
2024-08-26 18:05 ` Bart Van Assche
2024-08-26 21:36 ` Dan Carpenter
2024-08-21 18:29 ` [PATCH 2/2] scsi: ufs: core: Fix the code for entering hibernation Bart Van Assche
2024-08-21 21:27 ` Bean Huo
2024-08-21 21:39 ` Bart Van Assche
2024-08-22 14:17 ` Bean Huo
2024-08-22 17:51 ` Bart Van Assche
2024-08-23 10:54 ` Bean Huo
2024-08-23 11:26 ` Can Guo
2024-08-23 16:09 ` Bart Van Assche
2024-08-21 23:26 ` Bao D. Nguyen
2024-08-22 0:14 ` Bart Van Assche
2024-08-22 1:05 ` Bao D. Nguyen
2024-08-22 18:13 ` Bart Van Assche
2024-08-22 20:54 ` Bao D. Nguyen
2024-08-22 21:08 ` Bart Van Assche
2024-08-23 12:01 ` Manivannan Sadhasivam
2024-08-23 14:23 ` Bart Van Assche
2024-08-23 14:58 ` Manivannan Sadhasivam
2024-08-23 16:07 ` Bart Van Assche
2024-08-23 16:48 ` Manivannan Sadhasivam
2024-08-23 18:05 ` Bart Van Assche
2024-08-24 2:29 ` Manivannan Sadhasivam
2024-08-24 2:48 ` Bart Van Assche
2024-08-24 3:03 ` Manivannan Sadhasivam
2024-08-26 6:48 ` Can Guo
2024-08-22 6:36 ` [PATCH 2/2] scsi: ufs: core: Fix the code for entering hibernation Manivannan Sadhasivam
2024-08-22 5:36 ` Peter Wang (王信友)
2024-08-22 23:34 ` Bao D. Nguyen
2024-08-23 2:06 ` Bart Van Assche
2024-08-23 2:57 ` Peter Wang (王信友)
2024-08-23 20:27 ` Bart Van Assche
2024-08-26 6:16 ` Peter Wang (王信友)
2024-08-26 18:08 ` Bart Van Assche
2024-08-27 1:39 ` Peter Wang (王信友)
2024-08-27 15:42 ` Bart Van Assche
2024-08-27 21:59 ` Bao D. Nguyen
2024-08-28 6:17 ` Peter Wang (王信友)
2024-08-28 11:18 ` Bart Van Assche
2024-08-28 13:46 ` Peter Wang (王信友)
2024-08-28 14:10 ` Bart Van Assche
2024-08-29 2:34 ` Peter Wang (王信友)
2024-08-23 3:43 ` Bao D. Nguyen
2024-08-23 20:25 ` Bart Van Assche
2024-08-27 21:17 ` Bao D. Nguyen
2024-08-27 21:39 ` Bart Van Assche
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=50e21f3e873c19da78b108b0352a8aa6cf95907e.camel@mediatek.com \
--to=peter.wang@mediatek.com \
--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=manivannan.sadhasivam@linaro.org \
--cc=martin.petersen@oracle.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox