From: Damien Le Moal <damien.lemoal@opensource.wdc.com>
To: Serge Semin <fancer.lancer@gmail.com>
Cc: Serge Semin <Sergey.Semin@baikalelectronics.ru>,
Hans de Goede <hdegoede@redhat.com>, Jens Axboe <axboe@kernel.dk>,
Hannes Reinecke <hare@suse.de>,
Alexey Malahov <Alexey.Malahov@baikalelectronics.ru>,
Pavel Parkhomenko <Pavel.Parkhomenko@baikalelectronics.ru>,
Rob Herring <robh+dt@kernel.org>,
linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org,
devicetree@vger.kernel.org
Subject: Re: [PATCH v4 07/23] ata: libahci_platform: Convert to using devm bulk clocks API
Date: Thu, 16 Jun 2022 09:23:28 +0900 [thread overview]
Message-ID: <0dcebae2-5e4e-a0d3-181d-37bb9b40d564@opensource.wdc.com> (raw)
In-Reply-To: <20220615204509.siz54h4vbgvb3zkm@mobilestation>
On 2022/06/16 5:45, Serge Semin wrote:
[...]
>>> + hpriv->clks = devm_kzalloc(dev, sizeof(*hpriv->clks), GFP_KERNEL);
>>> + if (!hpriv->clks) {
>>> + rc = -ENOMEM;
>>> + goto err_out;
>>> + }
>>> + hpriv->clks->clk = devm_clk_get_optional(dev, NULL);
>
>>> + if (IS_ERR(hpriv->clks->clk)) {
>>> + rc = PTR_ERR(hpriv->clks->clk);
>>> + goto err_out;
>>> + } else if (hpriv->clks->clk) {
>>
>> Nit: the else is not needed here.
>
> Well, it depends on what you see behind it. I see many reasons to keep
> it and only one tiny reason to drop it. Keeping it will improve the
> code readability and maintainability like having a more natural
> execution flow representation, thus clearer read-flow (else part as
> exception to the if part), less modifications should the goto part is
> changed/removed, a more exact program flow representation can be used
> by the compiler for some internal optimizations, it's one line shorter
> than the case we no 'else' here. On the other hand indeed we can drop
> it since if the conditional statement is true, the code afterwards
> won't be executed due to the goto operator. But as I see it dropping
> the else operator won't improve anything, but vise-versa will worsen
> the code instead. So if I get to miss something please justify why you
> want it being dropped, otherwise I would rather preserve it.
An else after a goto or return is never necessary and in my opinion makes the
code harder to read. I am not interested in debating this in general anyway. For
this particular case, the code would be:
hpriv->clks->clk = devm_clk_get_optional(dev, NULL);
if (IS_ERR(hpriv->clks->clk)) {
/* Error path */
rc = PTR_ERR(hpriv->clks->clk);
goto err_out;
}
/* Normal path */
if (hpriv->clks->clk) {
...
}
Which in my opinion is a lot easier to understand compared to having to parse
the if/else if and figure out which case in that sequence is normal vs error.
As noted, this is a nit. If you really insist, keep that else if.
>
> -Sergey
>
>>
>>> + hpriv->clks->id = __clk_get_name(hpriv->clks->clk);
>>> + hpriv->n_clks = 1;
>>> }
>>> - hpriv->clks[i] = clk;
>>> }
>>>
>>> hpriv->ahci_regulator = devm_regulator_get(dev, "ahci");
>>
>>
>> --
>> Damien Le Moal
>> Western Digital Research
--
Damien Le Moal
Western Digital Research
next prev parent reply other threads:[~2022-06-16 0:24 UTC|newest]
Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-10 8:17 [PATCH v4 00/23] ata: ahci: Add DWC/Baikal-T1 AHCI SATA support Serge Semin
2022-06-10 8:17 ` [PATCH v4 01/23] dt-bindings: ata: ahci-platform: Move dma-coherent to sata-common.yaml Serge Semin
2022-06-14 22:02 ` Rob Herring
2022-06-14 22:15 ` Florian Fainelli
2022-06-10 8:17 ` [PATCH v4 02/23] dt-bindings: ata: ahci-platform: Detach common AHCI bindings Serge Semin
2022-06-14 22:16 ` Rob Herring
2022-06-10 8:17 ` [PATCH v4 03/23] dt-bindings: ata: ahci-platform: Clarify common AHCI props constraints Serge Semin
2022-06-14 22:17 ` Rob Herring
2022-06-10 8:17 ` [PATCH v4 04/23] dt-bindings: ata: sata: Extend number of SATA ports Serge Semin
2022-06-10 8:17 ` [PATCH v4 05/23] dt-bindings: ata: sata-brcm: Apply common AHCI schema Serge Semin
2022-06-14 22:15 ` Florian Fainelli
2022-06-14 22:17 ` Rob Herring
2022-06-10 8:17 ` [PATCH v4 06/23] ata: libahci_platform: Convert to using platform devm-ioremap methods Serge Semin
2022-06-10 8:17 ` [PATCH v4 07/23] ata: libahci_platform: Convert to using devm bulk clocks API Serge Semin
2022-06-14 8:22 ` Damien Le Moal
2022-06-15 20:45 ` Serge Semin
2022-06-16 0:23 ` Damien Le Moal [this message]
2022-06-17 19:54 ` Serge Semin
2022-06-10 8:17 ` [PATCH v4 08/23] ata: libahci_platform: Sanity check the DT child nodes number Serge Semin
2022-06-14 8:23 ` Damien Le Moal
2022-06-15 20:53 ` Serge Semin
2022-06-16 0:25 ` Damien Le Moal
2022-06-17 20:18 ` Serge Semin
2022-06-18 6:49 ` Damien Le Moal
2022-06-10 8:17 ` [PATCH v4 09/23] ata: libahci_platform: Parse ports-implemented property in resources getter Serge Semin
2022-06-10 8:17 ` [PATCH v4 10/23] ata: libahci_platform: Introduce reset assertion/deassertion methods Serge Semin
2022-06-10 8:17 ` [PATCH v4 11/23] dt-bindings: ata: ahci: Add platform capability properties Serge Semin
2022-06-14 22:19 ` Rob Herring
2022-06-15 21:56 ` Serge Semin
2022-06-10 8:17 ` [PATCH v4 12/23] ata: libahci: Extend port-cmd flags set with port capabilities Serge Semin
2022-06-14 8:32 ` Damien Le Moal
2022-06-15 20:58 ` Serge Semin
2022-06-16 0:28 ` Damien Le Moal
2022-06-17 20:31 ` Serge Semin
2022-06-18 6:52 ` Damien Le Moal
2022-06-18 8:10 ` Serge Semin
2022-06-28 12:08 ` Serge Semin
2022-06-29 1:35 ` Damien Le Moal
2022-06-29 1:47 ` Serge Semin
2022-06-10 8:17 ` [PATCH v4 13/23] ata: libahci: Discard redundant force_port_map parameter Serge Semin
2022-06-10 8:17 ` [PATCH v4 14/23] ata: libahci: Don't read AHCI version twice in the save-config method Serge Semin
2022-06-10 8:17 ` [PATCH v4 15/23] ata: ahci: Convert __ahci_port_base to accepting hpriv as arguments Serge Semin
2022-06-14 8:38 ` Damien Le Moal
2022-06-15 21:25 ` Serge Semin
2022-06-10 8:17 ` [PATCH v4 16/23] ata: ahci: Introduce firmware-specific caps initialization Serge Semin
2022-06-14 8:42 ` Damien Le Moal
2022-06-15 21:11 ` Serge Semin
2022-06-16 0:29 ` Damien Le Moal
2022-06-17 20:32 ` Serge Semin
2022-06-10 8:17 ` [PATCH v4 17/23] dt-bindings: ata: ahci: Add DWC AHCI SATA controller DT schema Serge Semin
2022-06-14 22:27 ` Rob Herring
2022-06-17 19:37 ` Serge Semin
2022-06-28 12:10 ` Serge Semin
2022-07-06 22:36 ` Rob Herring
2022-07-07 15:25 ` Serge Semin
2022-07-12 20:13 ` Rob Herring
2022-07-12 20:43 ` Serge Semin
2022-06-10 8:17 ` [PATCH v4 18/23] ata: libahci_platform: Add function returning a clock-handle by id Serge Semin
2022-06-14 8:45 ` Damien Le Moal
2022-06-15 21:24 ` Serge Semin
2022-06-10 8:17 ` [PATCH v4 19/23] ata: ahci: Add DWC AHCI SATA controller support Serge Semin
2022-06-10 16:34 ` Randy Dunlap
2022-06-10 21:58 ` Serge Semin
2022-06-10 23:34 ` Randy Dunlap
2022-06-15 21:30 ` Serge Semin
2022-06-16 0:31 ` Damien Le Moal
2022-06-17 20:36 ` Serge Semin
2022-06-18 6:54 ` Damien Le Moal
2022-06-14 8:53 ` Damien Le Moal
2022-06-15 21:48 ` Serge Semin
2022-06-16 0:33 ` Damien Le Moal
2022-06-17 20:34 ` Serge Semin
2022-06-10 8:17 ` [PATCH v4 20/23] dt-bindings: ata: ahci: Add Baikal-T1 AHCI SATA controller DT schema Serge Semin
2022-06-14 22:29 ` Rob Herring
2022-06-17 19:49 ` Serge Semin
2022-06-10 8:17 ` [PATCH v4 21/23] ata: ahci-dwc: Add platform-specific quirks support Serge Semin
2022-06-10 8:18 ` [PATCH v4 22/23] ata: ahci-dwc: Add Baikal-T1 AHCI SATA interface support Serge Semin
2022-06-10 8:18 ` [PATCH v4 23/23] MAINTAINERS: Add maintainers for DWC AHCI SATA driver Serge Semin
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=0dcebae2-5e4e-a0d3-181d-37bb9b40d564@opensource.wdc.com \
--to=damien.lemoal@opensource.wdc.com \
--cc=Alexey.Malahov@baikalelectronics.ru \
--cc=Pavel.Parkhomenko@baikalelectronics.ru \
--cc=Sergey.Semin@baikalelectronics.ru \
--cc=axboe@kernel.dk \
--cc=devicetree@vger.kernel.org \
--cc=fancer.lancer@gmail.com \
--cc=hare@suse.de \
--cc=hdegoede@redhat.com \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=robh+dt@kernel.org \
/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;
as well as URLs for NNTP newsgroup(s).