Thread (13 messages) 13 messages, 4 authors, 2014-01-09

Re: [PATCH v3 2/3] ata: ahci_platform: Manage SATA PHY

From: Arnd Bergmann <arnd@arndb.de>
Date: 2014-01-09 10:05:38
Also in: linux-devicetree, lkml

On Thursday 09 January 2014, Roger Quadros wrote:
quoted
quoted
if (!IS_ERR(hpriv->phy)) {
        rc = phy_init(hpriv->phy);
        if (rc)
                goto disable_unprepare_clk;

        rc = phy_power_on(hpriv->phy);
        if (rc) {
                phy_exit(hpriv->phy);
                goto disable_unprepare_clk;
        }
}
As I said, I'd prefer to set hpriv->phy to NULL in case of -ENODEV,
but functionally it seems right (with the fixup from your other mail).
Why do you prefer setting hpriv->phy to NULL instead of using IS_ERR() check
before hpriv->phy is used?
The latter seems to be the norm at least among clock framework users.
Two reasons:

1. It feels more natural to read "if (clk)" in driver code as a check for
   "a clock exists" than "if (!IS_ERR(clk))".
2. It clarifies that this code path is only there to check for the
   clk-not-present case, not for other errors.

Obviously the first check after clk_get needs to be IS_ERR() because that
is the documented interface, but then you should decide on the action
based on the specific error.

	Arnd
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help