diff options
author | Nishka Dasgupta <nishkadg.linux@gmail.com> | 2019-08-15 09:13:54 +0300 |
---|---|---|
committer | Geert Uytterhoeven <geert+renesas@glider.be> | 2019-08-19 15:56:14 +0300 |
commit | da51ceda8ab054bf3b4c5cf86a8deec7d7849a5c (patch) | |
tree | e629a5b0badaaf10590010cbb38a8841e6fbfb07 /drivers/soc | |
parent | 0ed0eb0171d7c19310d9f7b06a6dee82a4fb8ab6 (diff) | |
download | linux-da51ceda8ab054bf3b4c5cf86a8deec7d7849a5c.tar.xz |
soc: renesas: rcar-sysc: Add goto to of_node_put() before return
The local variable np in function rcar_sysc_pd_init takes the return
value of of_find_matching_node_and_match(), which gets a node but does
not put it. If np is not put before the function returns, it may cause
a memory leak.
Hence, remove the return statement that does not immediately follow a
putting of np. Replace it with a goto pointing to a pre-existing label
that first puts np and then returns the required value.
Issue found with Coccinelle.
Fixes: afa6f53df6052968 ("soc: renesas: rcar-sysc: Add support for fixing up power area tables")
Signed-off-by: Nishka Dasgupta <nishkadg.linux@gmail.com>
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Diffstat (limited to 'drivers/soc')
-rw-r--r-- | drivers/soc/renesas/rcar-sysc.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/soc/renesas/rcar-sysc.c b/drivers/soc/renesas/rcar-sysc.c index 02b29ea62dc4..54baa2fe8527 100644 --- a/drivers/soc/renesas/rcar-sysc.c +++ b/drivers/soc/renesas/rcar-sysc.c @@ -346,7 +346,7 @@ static int __init rcar_sysc_pd_init(void) if (info->init) { error = info->init(); if (error) - return error; + goto out_put; } has_cpg_mstp = of_find_compatible_node(NULL, NULL, |