The driver previously ignored the return value of 'clk_prepare_enable()' for both the CSR clock and the PCLK in 'stmmac_probe_config_dt()' function. Add 'clk_prepare_enable()' return value checks. Found by Linux Verification Center (linuxtesting.org) with SVACE. Fixes: bfab27a146ed ("stmmac: add the experimental PCI support") Signed-off-by: Pavel Zhigulin --- drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c index 27bcaae07a7f..042d542b9c65 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c @@ -632,7 +632,9 @@ stmmac_probe_config_dt(struct platform_device *pdev, u8 *mac) dev_warn(&pdev->dev, "Cannot get CSR clock\n"); plat->stmmac_clk = NULL; } - clk_prepare_enable(plat->stmmac_clk); + rc = clk_prepare_enable(plat->stmmac_clk); + if (rc < 0) + dev_warn(&pdev->dev, "Cannot enable CSR clock: %d\n", rc); } plat->pclk = devm_clk_get_optional(&pdev->dev, "pclk"); @@ -640,7 +642,11 @@ stmmac_probe_config_dt(struct platform_device *pdev, u8 *mac) ret = plat->pclk; goto error_pclk_get; } - clk_prepare_enable(plat->pclk); + rc = clk_prepare_enable(plat->pclk); + if (rc < 0) { + dev_err(&pdev->dev, "Cannot enable pclk: %d\n", rc); + goto error_pclk_get; + } /* Fall-back to main clock in case of no PTP ref is passed */ plat->clk_ptp_ref = devm_clk_get(&pdev->dev, "ptp_ref"); -- 2.43.0