Re: [PATCH 5/6] soc/tegra: pmc: Add missing of_node_put

From: Jon Hunter
Date: Tue Jun 28 2016 - 06:46:25 EST



On 28/06/16 11:38, Jon Hunter wrote:
> Add missing of_node_put() in PMC early initialisation function.
>
> Signed-off-by: Jon Hunter <jonathanh@xxxxxxxxxx>
> ---
> drivers/soc/tegra/pmc.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/soc/tegra/pmc.c b/drivers/soc/tegra/pmc.c
> index 483d54623ec5..e62acaef140a 100644
> --- a/drivers/soc/tegra/pmc.c
> +++ b/drivers/soc/tegra/pmc.c
> @@ -1572,6 +1572,8 @@ static int __init tegra_pmc_early_init(void)
> value &= ~PMC_CNTRL_INTR_POLARITY;
>
> tegra_pmc_writel(value, PMC_CNTRL);
> +
> + of_node_put(np);
> }
>
> return 0;

Actually there are a couple other places we should put the node ...

diff --git a/drivers/soc/tegra/pmc.c b/drivers/soc/tegra/pmc.c
index 483d54623ec5..48e1de2f7aeb 100644
--- a/drivers/soc/tegra/pmc.c
+++ b/drivers/soc/tegra/pmc.c
@@ -1540,6 +1540,7 @@ static int __init tegra_pmc_early_init(void)
*/
if (of_address_to_resource(np, 0, &regs) < 0) {
pr_err("failed to get PMC registers\n");
+ of_node_put(np);
return -ENXIO;
}
}
@@ -1547,6 +1548,7 @@ static int __init tegra_pmc_early_init(void)
pmc->base = ioremap_nocache(regs.start, resource_size(&regs));
if (!pmc->base) {
pr_err("failed to map PMC registers\n");
+ of_node_put(np);
return -ENXIO;
}

@@ -1572,6 +1574,8 @@ static int __init tegra_pmc_early_init(void)
value &= ~PMC_CNTRL_INTR_POLARITY;

tegra_pmc_writel(value, PMC_CNTRL);
+
+ of_node_put(np);
}

return 0;

--
nvpublic