mtd: rawnand: fsmc: handle clk prepare error in fsmc_nand_resume()
authorYi Yang <yiyang13@huawei.com>
Thu, 17 Aug 2023 11:58:39 +0000 (19:58 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 13 Sep 2023 07:42:58 +0000 (09:42 +0200)
[ Upstream commit a5a88125d00612586e941ae13e7fcf36ba8f18a7 ]

In fsmc_nand_resume(), the return value of clk_prepare_enable() should be
checked since it might fail.

Fixes: e25da1c07dfb ("mtd: fsmc_nand: Add clk_{un}prepare() support")
Signed-off-by: Yi Yang <yiyang13@huawei.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20230817115839.10192-1-yiyang13@huawei.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/mtd/nand/raw/fsmc_nand.c

index 6b2bda8..17786e1 100644 (file)
@@ -1202,9 +1202,14 @@ static int fsmc_nand_suspend(struct device *dev)
 static int fsmc_nand_resume(struct device *dev)
 {
        struct fsmc_nand_data *host = dev_get_drvdata(dev);
+       int ret;
 
        if (host) {
-               clk_prepare_enable(host->clk);
+               ret = clk_prepare_enable(host->clk);
+               if (ret) {
+                       dev_err(dev, "failed to enable clk\n");
+                       return ret;
+               }
                if (host->dev_timings)
                        fsmc_nand_setup(host, host->dev_timings);
                nand_reset(&host->nand, 0);