diff options
author | Shawn Lin <shawn.lin@rock-chips.com> | 2016-03-13 12:13:22 +0800 |
---|---|---|
committer | Heiko Stuebner <heiko@sntech.de> | 2016-03-27 13:03:35 +0200 |
commit | 1d003eb0805ac5b549e76202a1e95da33f62cb9a (patch) | |
tree | 372bc7310ebd63735e067e43e06e02c3aeca46d9 /drivers/clk | |
parent | ff1ae209617cb31a5297bd103709d6b9e2db77d2 (diff) | |
download | lwn-1d003eb0805ac5b549e76202a1e95da33f62cb9a.tar.gz lwn-1d003eb0805ac5b549e76202a1e95da33f62cb9a.zip |
clk: rockchip: release io resource when failing to init clk
We should call iounmap to relase reg_base since it's not going
to be used any more if failing to init clk.
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Diffstat (limited to 'drivers/clk')
-rw-r--r-- | drivers/clk/rockchip/clk-rk3036.c | 1 | ||||
-rw-r--r-- | drivers/clk/rockchip/clk-rk3188.c | 1 | ||||
-rw-r--r-- | drivers/clk/rockchip/clk-rk3228.c | 1 | ||||
-rw-r--r-- | drivers/clk/rockchip/clk-rk3288.c | 1 | ||||
-rw-r--r-- | drivers/clk/rockchip/clk-rk3368.c | 1 |
5 files changed, 5 insertions, 0 deletions
diff --git a/drivers/clk/rockchip/clk-rk3036.c b/drivers/clk/rockchip/clk-rk3036.c index c7c8260e1c66..924f560dcf80 100644 --- a/drivers/clk/rockchip/clk-rk3036.c +++ b/drivers/clk/rockchip/clk-rk3036.c @@ -453,6 +453,7 @@ static void __init rk3036_clk_init(struct device_node *np) ctx = rockchip_clk_init(np, reg_base, CLK_NR_CLKS); if (IS_ERR(ctx)) { pr_err("%s: rockchip clk init failed\n", __func__); + iounmap(reg_base); return; } diff --git a/drivers/clk/rockchip/clk-rk3188.c b/drivers/clk/rockchip/clk-rk3188.c index 0fcce2295b37..d0e722a0e8cf 100644 --- a/drivers/clk/rockchip/clk-rk3188.c +++ b/drivers/clk/rockchip/clk-rk3188.c @@ -773,6 +773,7 @@ static struct rockchip_clk_provider *__init rk3188_common_clk_init(struct device ctx = rockchip_clk_init(np, reg_base, CLK_NR_CLKS); if (IS_ERR(ctx)) { pr_err("%s: rockchip clk init failed\n", __func__); + iounmap(reg_base); return ERR_PTR(-ENOMEM); } diff --git a/drivers/clk/rockchip/clk-rk3228.c b/drivers/clk/rockchip/clk-rk3228.c index c112b2f95224..016bdb0b793a 100644 --- a/drivers/clk/rockchip/clk-rk3228.c +++ b/drivers/clk/rockchip/clk-rk3228.c @@ -640,6 +640,7 @@ static void __init rk3228_clk_init(struct device_node *np) ctx = rockchip_clk_init(np, reg_base, CLK_NR_CLKS); if (IS_ERR(ctx)) { pr_err("%s: rockchip clk init failed\n", __func__); + iounmap(reg_base); return; } diff --git a/drivers/clk/rockchip/clk-rk3288.c b/drivers/clk/rockchip/clk-rk3288.c index d1031d1149ce..39af05a589b3 100644 --- a/drivers/clk/rockchip/clk-rk3288.c +++ b/drivers/clk/rockchip/clk-rk3288.c @@ -893,6 +893,7 @@ static void __init rk3288_clk_init(struct device_node *np) ctx = rockchip_clk_init(np, rk3288_cru_base, CLK_NR_CLKS); if (IS_ERR(ctx)) { pr_err("%s: rockchip clk init failed\n", __func__); + iounmap(rk3288_cru_base); return; } diff --git a/drivers/clk/rockchip/clk-rk3368.c b/drivers/clk/rockchip/clk-rk3368.c index 3121414cfd63..6cb474c593e7 100644 --- a/drivers/clk/rockchip/clk-rk3368.c +++ b/drivers/clk/rockchip/clk-rk3368.c @@ -875,6 +875,7 @@ static void __init rk3368_clk_init(struct device_node *np) ctx = rockchip_clk_init(np, reg_base, CLK_NR_CLKS); if (IS_ERR(ctx)) { pr_err("%s: rockchip clk init failed\n", __func__); + iounmap(reg_base); return; } |