Re: [PATCH] mips: lantiq: Add missing of_node_put() in irq.c

From: Thomas Bogendoerfer
Date: Tue Jun 21 2022 - 11:22:22 EST


On Wed, Jun 15, 2022 at 11:33:39PM +0800, Liang He wrote:
> In icu_of_init(), of_find_compatible_node() will return a node
> pointer with refcount incremented. We should use of_node_put()
> when it is not used anymore.
>
> Signed-off-by: Liang He <windhl@xxxxxxx>
> ---
> arch/mips/lantiq/irq.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/arch/mips/lantiq/irq.c b/arch/mips/lantiq/irq.c
> index b732495f138a..62f1b20a2169 100644
> --- a/arch/mips/lantiq/irq.c
> +++ b/arch/mips/lantiq/irq.c
> @@ -396,6 +396,9 @@ int __init icu_of_init(struct device_node *node, struct device_node *parent)
>
> ret = of_property_read_u32_array(eiu_node, "lantiq,eiu-irqs",
> ltq_eiu_irq, exin_avail);
> +

trailing whitespaces

> + of_node_put(eiu_node);
> +

trailing whitespaces

> if (ret)
> panic("failed to load external irq resources");
>
> @@ -409,6 +412,9 @@ int __init icu_of_init(struct device_node *node, struct device_node *parent)
> panic("Failed to remap eiu memory");
> }
>
> + /* if eiu_node&of_address_to_resource */
> + of_node_put(eiu_node);
> +

if I'm not mistaken you are freeing the taken reference twice. Shouldn't
it work by only adding the last of_node_put() ?

Thomas.

--
Crap can work. Given enough thrust pigs will fly, but it's not necessarily a
good idea. [ RFC1925, 2.3 ]