Re: [PATCH v2] PCI: rcar: Release temporary device tree node reference
From: Bjorn Helgaas
Date: Wed Nov 04 2026 - 13:57:56 EST
On Wed, Sep 23, 2026 at 09:04:11PM -0400, Yuho Choi wrote:
> of_find_matching_node() returns a referenced node even when it is used
> only as a boolean test. Drop the reference right after the match check.
I guess this actually fixes an of_node reference leak, right?
> Fixes: a115b1bd3af0 ("PCI: rcar: Add L1 link state fix into data abort hook")
> Signed-off-by: Yuho Choi <oss.patchbox@xxxxxxxxx>
> ---
> Changes in v2:
> - Use an explicit of_node_put() instead of __free(device_node) (Marek Vasut)
> - Switch to my oss.patchbox address
>
> v1: https://lore.kernel.org/all/20260801233841.469826-1-dbgh9129@xxxxxxxxx/
>
> drivers/pci/controller/pcie-rcar-host.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/pci/controller/pcie-rcar-host.c b/drivers/pci/controller/pcie-rcar-host.c
> index cd9171eebc289..1f5e33c802b5b 100644
> --- a/drivers/pci/controller/pcie-rcar-host.c
> +++ b/drivers/pci/controller/pcie-rcar-host.c
> @@ -1122,7 +1122,11 @@ static const struct of_device_id rcar_pcie_abort_handler_of_match[] __initconst
>
> static int __init rcar_pcie_init(void)
> {
> - if (of_find_matching_node(NULL, rcar_pcie_abort_handler_of_match)) {
> + struct device_node *np;
> +
> + np = of_find_matching_node(NULL, rcar_pcie_abort_handler_of_match);
> + if (np) {
> + of_node_put(np);
> #ifdef CONFIG_ARM_LPAE
> hook_fault_code(17, rcar_pcie_aarch32_abort_handler, SIGBUS, 0,
> "asynchronous external abort");
>
> base-commit: f0100363d8c374bd8e9ea7c9ba02744f0b802ca4
> --
> 2.43.0
>