net: fec: Do proper error checking for enet_out clk
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Fri, 20 May 2022 06:26:50 +0000 (08:26 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sun, 22 May 2022 20:49:21 +0000 (21:49 +0100)
An error code returned by devm_clk_get() might have other meanings than
"This clock doesn't exist". So use devm_clk_get_optional() and handle
all remaining errors as fatal.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/freescale/fec_main.c

index 3cb298f..9d7ef99 100644 (file)
@@ -3866,9 +3866,11 @@ fec_probe(struct platform_device *pdev)
        fep->itr_clk_rate = clk_get_rate(fep->clk_ahb);
 
        /* enet_out is optional, depends on board */
-       fep->clk_enet_out = devm_clk_get(&pdev->dev, "enet_out");
-       if (IS_ERR(fep->clk_enet_out))
-               fep->clk_enet_out = NULL;
+       fep->clk_enet_out = devm_clk_get_optional(&pdev->dev, "enet_out");
+       if (IS_ERR(fep->clk_enet_out)) {
+               ret = PTR_ERR(fep->clk_enet_out);
+               goto failed_clk;
+       }
 
        fep->ptp_clk_on = false;
        mutex_init(&fep->ptp_clk_mutex);