Linux kernel -stable discussions
 help / color / mirror / Atom feed
* [PATCH] PCI: xgene: Fix device node reference leak in xgene_pcie_probe()
@ 2026-09-17 13:22 Wentao Liang
  2026-09-18 11:50 ` kernel test robot
  2026-09-18 12:37 ` kernel test robot
  0 siblings, 2 replies; 3+ messages in thread
From: Wentao Liang @ 2026-09-17 13:22 UTC (permalink / raw)
  To: Liviu.Dudau
  Cc: bhelgaas, kwilczynski, linux-arm-kernel, linux-kernel, linux-pci,
	lpieralisi, mani, robh, tinamdar, toan, Wentao Liang, stable

xgene_pcie_probe() takes a reference to the port's device node with
of_node_get(), but returns directly from the error paths of
xgene_pcie_map_reg(), xgene_pcie_init_port(), xgene_pcie_setup() and
pci_host_probe(), leaking that reference on each of them.

Add an err_put_node label that drops the reference before returning.

Fixes: 5f6b6ccdbe1c ("PCI: xgene: Add APM X-Gene PCIe driver")
Cc: stable@vger.kernel.org
Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>
---
 drivers/pci/controller/pci-xgene.c | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/drivers/pci/controller/pci-xgene.c b/drivers/pci/controller/pci-xgene.c
index b95afa35201d..6b00ec60ede6 100644
--- a/drivers/pci/controller/pci-xgene.c
+++ b/drivers/pci/controller/pci-xgene.c
@@ -633,20 +633,28 @@ static int xgene_pcie_probe(struct platform_device *pdev)
 
 	ret = xgene_pcie_map_reg(port, pdev);
 	if (ret)
-		return ret;
+		goto err_put_node;
 
 	ret = xgene_pcie_init_port(port);
 	if (ret)
-		return ret;
+		goto err_put_node;
 
 	ret = xgene_pcie_setup(port);
 	if (ret)
-		return ret;
+		goto err_put_node;
 
 	bridge->sysdata = port;
 	bridge->ops = &xgene_pcie_ops;
 
-	return pci_host_probe(bridge);
+	ret = pci_host_probe(bridge);
+	if (ret)
+		goto err_put_node;
+
+	return 0;
+
+err_put_node:
+	of_node_put(port->node);
+	return ret;
 }
 
 static const struct of_device_id xgene_pcie_match_table[] = {
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-09-18 12:38 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-17 13:22 [PATCH] PCI: xgene: Fix device node reference leak in xgene_pcie_probe() Wentao Liang
2026-09-18 11:50 ` kernel test robot
2026-09-18 12:37 ` kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox