clocksource: sh_cmt: Take care of clk_put() when setup_irq() fails
[firefly-linux-kernel-4.4.55.git] / drivers / clocksource / sh_cmt.c
index 488c14cc8dbf4848085142ca03e171ed35526b40..4b8d2962cad79134544f37e1bc6fc0e4356e0715 100644 (file)
@@ -708,17 +708,19 @@ static int sh_cmt_setup(struct sh_cmt_priv *p, struct platform_device *pdev)
                              cfg->clocksource_rating);
        if (ret) {
                dev_err(&p->pdev->dev, "registration failed\n");
-               goto err1;
+               goto err2;
        }
        p->cs_enabled = false;
 
        ret = setup_irq(irq, &p->irqaction);
        if (ret) {
                dev_err(&p->pdev->dev, "failed to request irq %d\n", irq);
-               goto err1;
+               goto err2;
        }
 
        return 0;
+err2:
+       clk_put(p->clk);
 
 err1:
        iounmap(p->mapbase);