Free memory mapping, if ftm_timer_init is not successful.

Signed-off-by: Arvind Yadav <arvind.yadav...@gmail.com>
---
 drivers/clocksource/fsl_ftm_timer.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/clocksource/fsl_ftm_timer.c 
b/drivers/clocksource/fsl_ftm_timer.c
index 738515b..238c821 100644
--- a/drivers/clocksource/fsl_ftm_timer.c
+++ b/drivers/clocksource/fsl_ftm_timer.c
@@ -329,13 +329,13 @@ static int __init ftm_timer_init(struct device_node *np)
        priv->clkevt_base = of_iomap(np, 0);
        if (!priv->clkevt_base) {
                pr_err("ftm: unable to map event timer registers\n");
-               goto err;
+               goto err_free;
        }
 
        priv->clksrc_base = of_iomap(np, 1);
        if (!priv->clksrc_base) {
                pr_err("ftm: unable to map source timer registers\n");
-               goto err;
+               goto err_clkevt_iounmap;
        }
 
        ret = -EINVAL;
@@ -366,6 +366,10 @@ static int __init ftm_timer_init(struct device_node *np)
        return 0;
 
 err:
+       iounmap(priv->clksrc_base);
+err_clkevt_iounmap:
+       iounmap(priv->clkevt_base);
+err_free:
        kfree(priv);
        return ret;
 }
-- 
2.7.4

Reply via email to