mtd: nand: lpc32xx_mlc: Fix an error handling path in lpc32xx_nand_probe()
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Sun, 3 Sep 2017 11:58:31 +0000 (13:58 +0200)
committerBoris Brezillon <boris.brezillon@free-electrons.com>
Mon, 18 Sep 2017 10:07:30 +0000 (12:07 +0200)
If 'clk_prepare_enable()' fails, we must 'put' the corresponding clock.

Fixes: 4d26f012ab59 ("mtd: nand: lpc32xx_mlc: Handle return value of clk_prepare_enable.")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
drivers/mtd/nand/lpc32xx_mlc.c

index c3bb358ef01eee5b7c7dc0b0ad72b9a3e47f5220..5796468db653450494876bcf6c5da772f7f6bd3e 100644 (file)
@@ -707,7 +707,7 @@ static int lpc32xx_nand_probe(struct platform_device *pdev)
        }
        res = clk_prepare_enable(host->clk);
        if (res)
-               goto err_exit1;
+               goto err_put_clk;
 
        nand_chip->cmd_ctrl = lpc32xx_nand_cmd_ctrl;
        nand_chip->dev_ready = lpc32xx_nand_device_ready;
@@ -814,6 +814,7 @@ err_exit3:
                dma_release_channel(host->dma_chan);
 err_exit2:
        clk_disable_unprepare(host->clk);
+err_put_clk:
        clk_put(host->clk);
 err_exit1:
        lpc32xx_wp_enable(host);