mtd: nand: lpc32xx_mlc: Handle return value of clk_prepare_enable.
authorArvind Yadav <arvind.yadav.cs@gmail.com>
Tue, 1 Aug 2017 11:40:11 +0000 (17:10 +0530)
committerBoris Brezillon <boris.brezillon@free-electrons.com>
Wed, 23 Aug 2017 14:49:20 +0000 (16:49 +0200)
clk_prepare_enable() can fail here and we must check its return value.

Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
drivers/mtd/nand/lpc32xx_mlc.c

index 846a66c1b1338f92e65a9548c6fa32e63d834294..91ee369681f0bab08ff25e23302074e34a733434 100644 (file)
@@ -705,7 +705,9 @@ static int lpc32xx_nand_probe(struct platform_device *pdev)
                res = -ENOENT;
                goto err_exit1;
        }
-       clk_prepare_enable(host->clk);
+       res = clk_prepare_enable(host->clk);
+       if (res)
+               goto err_exit1;
 
        nand_chip->cmd_ctrl = lpc32xx_nand_cmd_ctrl;
        nand_chip->dev_ready = lpc32xx_nand_device_ready;
@@ -846,9 +848,12 @@ static int lpc32xx_nand_remove(struct platform_device *pdev)
 static int lpc32xx_nand_resume(struct platform_device *pdev)
 {
        struct lpc32xx_nand_host *host = platform_get_drvdata(pdev);
+       int ret;
 
        /* Re-enable NAND clock */
-       clk_prepare_enable(host->clk);
+       ret = clk_prepare_enable(host->clk);
+       if (ret)
+               return ret;
 
        /* Fresh init of NAND controller */
        lpc32xx_nand_setup(host);