On Wed, Jul 22, 2015 at 3:11 PM, Florian Fainelli <f.faine...@gmail.com> wrote: > > Instead of multiplying the number of checks for IS_ERR(priv->clk), > simply NULLify the 'struct clk' pointer which is something the Linux > common clock framework perfectly deals with and does early return for > each and every single clk_* API functions. > > Having every single function check for !IS_ERR(priv->clk) is both > redundant and error prone, as it turns out, we were doing it for the > main GENET clock: priv->clk, but not for the Wake-on-LAN or EEE clock, > so let's just be consistent here. > > Signed-off-by: Florian Fainelli <f.faine...@gmail.com> > --- > drivers/net/ethernet/broadcom/genet/bcmgenet.c | 20 ++++++++++---------- > 1 file changed, 10 insertions(+), 10 deletions(-) > > diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c > b/drivers/net/ethernet/broadcom/genet/bcmgenet.c > index 5bf7ce0ae221..133bb10fdd34 100644 > --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c > +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c > @@ -2625,8 +2625,7 @@ static int bcmgenet_open(struct net_device *dev) > netif_dbg(priv, ifup, dev, "bcmgenet_open\n"); > > /* Turn on the clock */ > - if (!IS_ERR(priv->clk)) > - clk_prepare_enable(priv->clk); > + clk_prepare_enable(priv->clk); > > /* If this is an internal GPHY, power it back on now, before UniMAC is > * brought out of reset as absolutely no UniMAC activity is allowed > @@ -2703,8 +2702,7 @@ err_irq0: > err_fini_dma: > bcmgenet_fini_dma(priv); > err_clk_disable: > - if (!IS_ERR(priv->clk)) > - clk_disable_unprepare(priv->clk); > + clk_disable_unprepare(priv->clk); > return ret; > } > > @@ -2761,8 +2759,7 @@ static int bcmgenet_close(struct net_device *dev) > if (priv->internal_phy) > ret = bcmgenet_power_down(priv, GENET_POWER_PASSIVE); > > - if (!IS_ERR(priv->clk)) > - clk_disable_unprepare(priv->clk); > + clk_disable_unprepare(priv->clk); > > return ret; > } > @@ -3215,11 +3212,12 @@ static int bcmgenet_probe(struct platform_device > *pdev) > priv->version = pd->genet_version; > > priv->clk = devm_clk_get(&priv->pdev->dev, "enet"); > - if (IS_ERR(priv->clk)) > + if (IS_ERR(priv->clk)) { > dev_warn(&priv->pdev->dev, "failed to get enet clock\n"); > + priv->clk = NULL; > + }
Wouldn't the above be a fatal error? If you can't get the enet main clock, any point to go further in this code? > > - if (!IS_ERR(priv->clk)) > - clk_prepare_enable(priv->clk); > + clk_prepare_enable(priv->clk); > > bcmgenet_set_hw_params(priv); > > @@ -3230,8 +3228,10 @@ static int bcmgenet_probe(struct platform_device *pdev) > INIT_WORK(&priv->bcmgenet_irq_work, bcmgenet_irq_task); > > priv->clk_wol = devm_clk_get(&priv->pdev->dev, "enet-wol"); > - if (IS_ERR(priv->clk_wol)) > + if (IS_ERR(priv->clk_wol)) { > dev_warn(&priv->pdev->dev, "failed to get enet-wol clock\n"); > + priv->clk_wol = NULL; > + } > > priv->clk_eee = devm_clk_get(&priv->pdev->dev, "enet-eee"); > if (IS_ERR(priv->clk_eee)) { > -- > 2.1.0 > Looking at the rest of the code in bcmgenet_probe(), I still see: /* Turn off the main clock, WOL clock is handled separately */ if (!IS_ERR(priv->clk)) clk_disable_unprepare(priv->clk); err_clk_disable: if (!IS_ERR(priv->clk)) clk_disable_unprepare(priv->clk); you probably want to convert those as well, right? -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html