mtd: rawnand: tegra: Fix PM disable depth imbalance in probe
authorZhang Qilong <zhangqilong3@huawei.com>
Mon, 26 Sep 2022 08:44:56 +0000 (16:44 +0800)
committerMiquel Raynal <miquel.raynal@bootlin.com>
Tue, 18 Oct 2022 08:29:39 +0000 (10:29 +0200)
The pm_runtime_enable will increase power disable depth. Thus
a pairing decrement is needed on the error handling path to
keep it balanced according to context.

Cc: stable@vger.kernel.org
Fixes: d7d9f8ec77fe9 ("mtd: rawnand: add NVIDIA Tegra NAND Flash controller driver")
Signed-off-by: Zhang Qilong <zhangqilong3@huawei.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20220926084456.98160-1-zhangqilong3@huawei.com
drivers/mtd/nand/raw/tegra_nand.c

index e12f9f580a15f0a3d8415d138ee2f3bd90663a72..a9b9031ce61676947fe0dd7f21a8875db71b5978 100644 (file)
@@ -1181,7 +1181,7 @@ static int tegra_nand_probe(struct platform_device *pdev)
        pm_runtime_enable(&pdev->dev);
        err = pm_runtime_resume_and_get(&pdev->dev);
        if (err)
-               return err;
+               goto err_dis_pm;
 
        err = reset_control_reset(rst);
        if (err) {
@@ -1215,6 +1215,8 @@ static int tegra_nand_probe(struct platform_device *pdev)
 err_put_pm:
        pm_runtime_put_sync_suspend(ctrl->dev);
        pm_runtime_force_suspend(ctrl->dev);
+err_dis_pm:
+       pm_runtime_disable(&pdev->dev);
        return err;
 }