[PATCH] arch: arm: mach-versatile: Add missing of_node_put in integrator.c

heliang posted 1 patch 3 years, 10 months ago
arch/arm/mach-versatile/integrator.c | 1 +
1 file changed, 1 insertion(+)
[PATCH] arch: arm: mach-versatile: Add missing of_node_put in integrator.c
Posted by heliang 3 years, 10 months ago
In cm_init(), of_find_matching_node() will return a node pointer with
refcount incremented. We should use of_node_put() when the pointer is
not used anymore.

Signed-off-by: heliang <windhl@126.com>
---
 arch/arm/mach-versatile/integrator.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm/mach-versatile/integrator.c b/arch/arm/mach-versatile/integrator.c
index fdf9c4db08a7..fba19357171a 100644
--- a/arch/arm/mach-versatile/integrator.c
+++ b/arch/arm/mach-versatile/integrator.c
@@ -76,6 +76,7 @@ void cm_init(void)
 		return;
 	}
 	cm_base = of_iomap(cm, 0);
+	of_node_put(cm);
 	if (!cm_base) {
 		pr_crit("could not remap core module\n");
 		return;
-- 
2.25.1
Re: [PATCH] arch: arm: mach-versatile: Add missing of_node_put in integrator.c
Posted by Rob Herring 2 years, 7 months ago
On Wed, Jun 15, 2022 at 4:06 AM heliang <windhl@126.com> wrote:
>
> In cm_init(), of_find_matching_node() will return a node pointer with
> refcount incremented. We should use of_node_put() when the pointer is
> not used anymore.
>
> Signed-off-by: heliang <windhl@126.com>
> ---
>  arch/arm/mach-versatile/integrator.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/arch/arm/mach-versatile/integrator.c b/arch/arm/mach-versatile/integrator.c
> index fdf9c4db08a7..fba19357171a 100644
> --- a/arch/arm/mach-versatile/integrator.c
> +++ b/arch/arm/mach-versatile/integrator.c
> @@ -76,6 +76,7 @@ void cm_init(void)
>                 return;
>         }
>         cm_base = of_iomap(cm, 0);
> +       of_node_put(cm);

Not really sure this is right. It is in the sense that the DT node is
never accessed again. However, the device itself is still accessed and
I tend to think a ref to the DT node should be held for that lifetime
which in this case is forever. Really, none of this matters because
nodes are never removed and these fixes are kind of pointless.

Note that cm_get() and cm_control() are never used and can be removed.
That would be the more useful clean-up.

Rob
Re: [PATCH] arch: arm: mach-versatile: Add missing of_node_put in integrator.c
Posted by Linus Walleij 2 years, 7 months ago
On Wed, Sep 13, 2023 at 3:01 PM Rob Herring <robh@kernel.org> wrote:
> On Wed, Jun 15, 2022 at 4:06 AM heliang <windhl@126.com> wrote:
> >
> > In cm_init(), of_find_matching_node() will return a node pointer with
> > refcount incremented. We should use of_node_put() when the pointer is
> > not used anymore.
> >
> > Signed-off-by: heliang <windhl@126.com>
> > ---
> >  arch/arm/mach-versatile/integrator.c | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/arch/arm/mach-versatile/integrator.c b/arch/arm/mach-versatile/integrator.c
> > index fdf9c4db08a7..fba19357171a 100644
> > --- a/arch/arm/mach-versatile/integrator.c
> > +++ b/arch/arm/mach-versatile/integrator.c
> > @@ -76,6 +76,7 @@ void cm_init(void)
> >                 return;
> >         }
> >         cm_base = of_iomap(cm, 0);
> > +       of_node_put(cm);
>
> Not really sure this is right. It is in the sense that the DT node is
> never accessed again. However, the device itself is still accessed and
> I tend to think a ref to the DT node should be held for that lifetime
> which in this case is forever. Really, none of this matters because
> nodes are never removed and these fixes are kind of pointless.

I'm just gonna scrap all these of_node_put() patches these automated
static analyzers have sent to the Versatile board and SoC code, it's
too dangerous.

> Note that cm_get() and cm_control() are never used and can be removed.
> That would be the more useful clean-up.

Yeah :/

Yours,
Linus Walleij
Re: [PATCH] arch: arm: mach-versatile: Add missing of_node_put in integrator.c
Posted by Linus Walleij 2 years, 7 months ago
On Wed, Jun 15, 2022 at 11:05 AM heliang <windhl@126.com> wrote:

> In cm_init(), of_find_matching_node() will return a node pointer with
> refcount incremented. We should use of_node_put() when the pointer is
> not used anymore.
>
> Signed-off-by: heliang <windhl@126.com>

Patch applied.

Yours,
Linus Walleij