[PATCH] perf: RISC-V: Add of_node_put() when breaking out of for_each_of_cpu_node()

Atish Patra atishp at atishpatra.org
Tue Jul 19 09:10:31 PDT 2022


On Fri, Jul 15, 2022 at 6:03 AM Liang He <windhl at 126.com> wrote:
>
> In pmu_sbi_setup_irqs(), we should call of_node_put() for the 'cpu'
> when breaking out of for_each_of_cput_node() as its refcount will
> be automatically increased and decreased during the iteration.
>
> Fixes: 4905ec2fb7e6 ("RISC-V: Add sscofpmf extension support")
> Signed-off-by: Liang He <windhl at 126.com>
> ---
>  drivers/perf/riscv_pmu_sbi.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/perf/riscv_pmu_sbi.c b/drivers/perf/riscv_pmu_sbi.c
> index dca3537a8dcc..705d249a1b53 100644
> --- a/drivers/perf/riscv_pmu_sbi.c
> +++ b/drivers/perf/riscv_pmu_sbi.c
> @@ -666,12 +666,15 @@ static int pmu_sbi_setup_irqs(struct riscv_pmu *pmu, struct platform_device *pde
>                 child = of_get_compatible_child(cpu, "riscv,cpu-intc");
>                 if (!child) {
>                         pr_err("Failed to find INTC node\n");
> +                       of_node_put(cpu);
>                         return -ENODEV;
>                 }
>                 domain = irq_find_host(child);
>                 of_node_put(child);
> -               if (domain)
> +               if (domain) {
> +                       of_node_put(cpu);
>                         break;
> +               }
>         }
>         if (!domain) {
>                 pr_err("Failed to find INTC IRQ root domain\n");
> --
> 2.25.1
>

Thanks for catching it.


Reviewed-by: Atish Patra <atishp at rivosinc.com>

-- 
Regards,
Atish



More information about the linux-riscv mailing list