lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <3fpgdpvfgnif6fir4ijr3m2qnh75zna6nx5ob4dpgukwgqflcm@aib4ctdaox3m>
Date: Thu, 5 Feb 2026 13:35:07 +0530
From: Manivannan Sadhasivam <mani@...nel.org>
To: Felix Gu <ustc.gu@...il.com>, Bjorn Helgaas <bhelgaas@...gle.com>
Cc: Claudiu Beznea <claudiu.beznea.uj@...renesas.com>, 
	Lorenzo Pieralisi <lpieralisi@...nel.org>, Krzysztof Wilczyński <kwilczynski@...nel.org>, 
	Rob Herring <robh@...nel.org>, linux-pci@...r.kernel.org, linux-renesas-soc@...r.kernel.org, 
	linux-kernel@...r.kernel.org
Subject: Re: [PATCH] PCI: rzg3s-host: Fix device node reference leak in
 rzg3s_pcie_host_parse_port()

On Wed, Feb 04, 2026 at 12:46:24AM +0800, Felix Gu wrote:
> In rzg3s_pcie_host_parse_port(), of_get_next_child() returns a device
> node with an incremented reference count that must be released with
> of_node_put(). The current code fails to call of_node_put() which
> causes a reference leak.
> 
> Use the __free(device_node) attribute to ensure automatic cleanup when
> the variable goes out of scope.
> 
> Fixes: 7ef502fb35b2 ("PCI: Add Renesas RZ/G3S host controller driver")
> Signed-off-by: Felix Gu <ustc.gu@...il.com>

Patch LGTM. But we are nearing the merge window. So I'm not sure if Bjorn would
be happy for me to merge any patches atm.

Since this fix is trivial, we can defer it for 7.1.

Bjorn, if you decide to merge this still, feel free to add:

Acked-by: Manivannan Sadhasivam <mani@...nel.org>

On a side note, I see that this driver just parses the first Root Port instead
of parsing all Root Port nodes because the current IP design has only one RP.
But for uniformity, it should parse all nodes so that if the IP gets extended
in the future, driver can still hoepfully work.

This further motivates me to come up with host controller generic APIs to parse
the Root Ports :)

- Mani

> ---
>  drivers/pci/controller/pcie-rzg3s-host.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/pci/controller/pcie-rzg3s-host.c b/drivers/pci/controller/pcie-rzg3s-host.c
> index 5aa58638903f..2809112e6317 100644
> --- a/drivers/pci/controller/pcie-rzg3s-host.c
> +++ b/drivers/pci/controller/pcie-rzg3s-host.c
> @@ -1142,7 +1142,8 @@ static int rzg3s_pcie_resets_prepare_and_get(struct rzg3s_pcie_host *host)
>  
>  static int rzg3s_pcie_host_parse_port(struct rzg3s_pcie_host *host)
>  {
> -	struct device_node *of_port = of_get_next_child(host->dev->of_node, NULL);
> +	struct device_node *of_port __free(device_node) =
> +		of_get_next_child(host->dev->of_node, NULL);
>  	struct rzg3s_pcie_port *port = &host->port;
>  	int ret;
>  
> 
> ---
> base-commit: 193579fe01389bc21aff0051d13f24e8ea95b47d
> change-id: 20260204-rzg3s-bc7c27c80a89
> 
> Best regards,
> -- 
> Felix Gu <ustc.gu@...il.com>
> 

-- 
மணிவண்ணன் சதாசிவம்

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ