watchdog: imx2_wdt: Check for clk_prepare_enable() error
authorFabio Estevam <fabio.estevam@freescale.com>
Mon, 22 Jun 2015 04:16:18 +0000 (01:16 -0300)
committerWim Van Sebroeck <wim@iguana.be>
Fri, 26 Jun 2015 08:41:11 +0000 (10:41 +0200)
clk_prepare_enable() may fail, so we should better check its return value
and propagate it in the case of error.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
drivers/watchdog/imx2_wdt.c

index 2acdd17025c40e280bf90f91d9f33af49fcd0d06..add1fa0fad17459158364eeb7eb2bba9bbc940b0 100644 (file)
@@ -260,7 +260,9 @@ static int __init imx2_wdt_probe(struct platform_device *pdev)
        wdog->max_timeout       = IMX2_WDT_MAX_TIME;
        wdog->parent            = &pdev->dev;
 
-       clk_prepare_enable(wdev->clk);
+       ret = clk_prepare_enable(wdev->clk);
+       if (ret)
+               return ret;
 
        regmap_read(wdev->regmap, IMX2_WDT_WRSR, &val);
        wdog->bootstatus = val & IMX2_WDT_WRSR_TOUT ? WDIOF_CARDRESET : 0;
@@ -365,8 +367,11 @@ static int imx2_wdt_resume(struct device *dev)
 {
        struct watchdog_device *wdog = dev_get_drvdata(dev);
        struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog);
+       int ret;
 
-       clk_prepare_enable(wdev->clk);
+       ret = clk_prepare_enable(wdev->clk);
+       if (ret)
+               return ret;
 
        if (watchdog_active(wdog) && !imx2_wdt_is_running(wdev)) {
                /*