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 <[email protected]>
---
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
On Wed, Jun 15, 2022 at 4:06 AM heliang <[email protected]> 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 <[email protected]>
> ---
> 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
On Wed, Jun 15, 2022 at 11:05 AM heliang <[email protected]> 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 <[email protected]>
Patch applied.
Yours,
Linus Walleij
On Wed, Sep 13, 2023 at 3:01 PM Rob Herring <[email protected]> wrote:
> On Wed, Jun 15, 2022 at 4:06 AM heliang <[email protected]> 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 <[email protected]>
> > ---
> > 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