Message ID | 20220308022929.30002-1-linmq006@gmail.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Lorenzo Pieralisi |
Headers | show |
Series | PCI: imx6: Add missing of_node_put() in imx6_pcie_probe | expand |
On Mon, Mar 7, 2022 at 8:29 PM Miaoqian Lin <linmq006@gmail.com> wrote: > > The device_node pointer is returned by of_parse_phandle() with refcount > incremented. We should use of_node_put() on it when done. > > Fixes: 1df82ec46600 ("PCI: imx: Add workaround for e10728, IMX7d PCIe PLL failure") > 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 6974bd5aa116..bcc338ab6c11 100644 > --- a/drivers/pci/controller/dwc/pci-imx6.c > +++ b/drivers/pci/controller/dwc/pci-imx6.c > @@ -1050,6 +1050,7 @@ static int imx6_pcie_probe(struct platform_device *pdev) > struct resource res; > > ret = of_address_to_resource(np, 0, &res); > + of_node_put(np); So now you are using the phy within the driver, but not holding a reference to its node? That is wrong. Though if a struct device was created for the phy's node, it would hold a reference. There are a bunch of error paths where the reference should be dropped. But really, this driver is a big mess with the phy binding and framework not used and your nodes probably aren't going to be disappearing on you anyways. Rob
diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c index 6974bd5aa116..bcc338ab6c11 100644 --- a/drivers/pci/controller/dwc/pci-imx6.c +++ b/drivers/pci/controller/dwc/pci-imx6.c @@ -1050,6 +1050,7 @@ static int imx6_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;
The device_node pointer is returned by of_parse_phandle() with refcount incremented. We should use of_node_put() on it when done. Fixes: 1df82ec46600 ("PCI: imx: Add workaround for e10728, IMX7d PCIe PLL failure") Signed-off-by: Miaoqian Lin <linmq006@gmail.com> --- drivers/pci/controller/dwc/pci-imx6.c | 1 + 1 file changed, 1 insertion(+)