On Wed, Jul 3, 2024 at 11:15 AM Bert Karwatzki <spasswolf@xxxxxx> wrote: > > If of_platform_populate() is called when CONFIG_OF is not defined this > leads to spurious error messages of the following type: > pci 0000:00:01.1: failed to populate child OF nodes (-19) > pci 0000:00:02.1: failed to populate child OF nodes (-19) > > Fixes: 8fb18619d910 ("PCI/pwrctl: Create platform devices for child OF nodes of the port node") > Signed-off-by: Bert Karwatzki <spasswolf@xxxxxx> > --- > drivers/pci/bus.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/pci/bus.c b/drivers/pci/bus.c > index e4735428814d..b363010664cd 100644 > --- a/drivers/pci/bus.c > +++ b/drivers/pci/bus.c > @@ -350,6 +350,7 @@ void pci_bus_add_device(struct pci_dev *dev) > > pci_dev_assign_added(dev, true); > > +#ifdef CONFIG_OF > if (pci_is_bridge(dev)) { > retval = of_platform_populate(dev->dev.of_node, NULL, NULL, > &dev->dev); > @@ -357,6 +358,7 @@ void pci_bus_add_device(struct pci_dev *dev) > pci_err(dev, "failed to populate child OF nodes (%d)\n", > retval); > } > +#endif > } > EXPORT_SYMBOL_GPL(pci_bus_add_device); > > -- > 2.45.2 > > The mentioned error message occur on systems without CONFIG_OF, i.e. > x86_64. The call to of_platform_depopulate() in drivers/pci/remove.c > does not need #ifdef CONFIG_OF as the return value is not checked (it > will most likely be optimized away on platforms witout OF where the > of_platform_{de,}populate() functions just return -ENODEV) > > Please CC me when replying, I'm not subscribed to the lists. > > Bert Karwatzki There's a better (less ifdeffery) fix on the list that I'll pick up later today[1]. Bart [1] https://lore.kernel.org/lkml/20240702180839.71491-1-superm1@xxxxxxxxxx/T/