On Mon, Mar 7, 2022 at 8:29 PM Miaoqian Lin <linmq006@xxxxxxxxx> 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@xxxxxxxxx> > --- > 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