drivers/pci/controller/dwc/pci-imx6.c | 1 + 1 file changed, 1 insertion(+)
As the doc of of_parse_phandle() states:
"The device_node pointer with refcount incremented. Use
* of_node_put() on it when done."
Add missing of_node_put() after of_parse_phandle() call to properly
release the device node reference.
Found via static analysis.
Fixes: 1df82ec46600 ("PCI: imx: Add workaround for e10728, IMX7d PCIe PLL failure")
Cc: stable@vger.kernel.org
Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
---
drivers/pci/controller/dwc/pci-imx6.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c
index 80e48746bbaf..618bc4b08a8b 100644
--- a/drivers/pci/controller/dwc/pci-imx6.c
+++ b/drivers/pci/controller/dwc/pci-imx6.c
@@ -1636,6 +1636,7 @@ static int imx_pcie_probe(struct platform_device *pdev)
struct resource res;
ret = of_address_to_resource(np, 0, &res);
+ of_node_put(np);
if (ret) {
dev_err(dev, "Unable to map PCIe PHY\n");
return ret;
--
2.35.1
On 03. 09. 25, 15:51, Miaoqian Lin wrote: > As the doc of of_parse_phandle() states: > "The device_node pointer with refcount incremented. Use > * of_node_put() on it when done." > Add missing of_node_put() after of_parse_phandle() call to properly > release the device node reference. How did you verify the node can go after of_address_to_resource()? > Fixes: 1df82ec46600 ("PCI: imx: Add workaround for e10728, IMX7d PCIe PLL failure") > Cc: stable@vger.kernel.org > Signed-off-by: Miaoqian Lin <linmq006@gmail.com> > --- > drivers/pci/controller/dwc/pci-imx6.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c > index 80e48746bbaf..618bc4b08a8b 100644 > --- a/drivers/pci/controller/dwc/pci-imx6.c > +++ b/drivers/pci/controller/dwc/pci-imx6.c > @@ -1636,6 +1636,7 @@ static int imx_pcie_probe(struct platform_device *pdev) > struct resource res; > > ret = of_address_to_resource(np, 0, &res); > + of_node_put(np); So why not to use __free(device_node)? thanks, -- js suse labs
On Wed, Sep 03, 2025 at 09:51:50PM +0800, Miaoqian Lin wrote: Subject: PCI: imx: Add missing of_node_put() to fix device node reference leak > As the doc of of_parse_phandle() states: > "The device_node pointer with refcount incremented. Use > * of_node_put() on it when done." Needn't this paragaph Frank > Add missing of_node_put() after of_parse_phandle() call to properly > release the device node reference. > > Found via static analysis. > > Fixes: 1df82ec46600 ("PCI: imx: Add workaround for e10728, IMX7d PCIe PLL failure") > Cc: stable@vger.kernel.org > Signed-off-by: Miaoqian Lin <linmq006@gmail.com> > --- > drivers/pci/controller/dwc/pci-imx6.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c > index 80e48746bbaf..618bc4b08a8b 100644 > --- a/drivers/pci/controller/dwc/pci-imx6.c > +++ b/drivers/pci/controller/dwc/pci-imx6.c > @@ -1636,6 +1636,7 @@ static int imx_pcie_probe(struct platform_device *pdev) > struct resource res; > > ret = of_address_to_resource(np, 0, &res); > + of_node_put(np); > if (ret) { > dev_err(dev, "Unable to map PCIe PHY\n"); > return ret; > -- > 2.35.1 >
> Add missing of_node_put() after of_parse_phandle() call to properly > release the device node reference. How do you think about to increase the application of scope-based resource management? https://elixir.bootlin.com/linux/v6.17-rc4/source/include/linux/of.h#L138 > Found via static analysis. Which concrete software tools would be involved for this purpose? How do you think about to append parentheses to the function name in the summary phrase? Regards, Markus
© 2016 - 2025 Red Hat, Inc.