On Tue, Jul 01, 2025 at 12:17:31PM +0530, Manivannan Sadhasivam wrote: > --- a/drivers/pci/probe.c > +++ b/drivers/pci/probe.c > @@ -2508,6 +2508,7 @@ bool pci_bus_read_dev_vendor_id(struct pci_bus *bus, int devfn, u32 *l, > } > EXPORT_SYMBOL(pci_bus_read_dev_vendor_id); > > +#if IS_ENABLED(CONFIG_PCI_PWRCTRL) > static struct platform_device *pci_pwrctrl_create_device(struct pci_bus *bus, int devfn) > { Hm, why does pci_pwrctrl_create_device() return a pointer, even though the sole caller doesn't make any use of it? Why not return a negative errno? Then you could just do this: if (!IS_ENABLED(CONFIG_PCI_PWRCTRL)) return 0; ... at the top of the function and you don't need the extra LoC for the empty inline stub. Another option is to set "struct pci_dev *pdev = NULL;" and #ifdef the body of the function, save for the "return pdev;" at the bottom. Of course you could also do: if (!IS_ENABLED(CONFIG_PCI_PWRCTRL)) return NULL; ... at the top of the function, but again, the caller doesn't make any use of the returned pointer. Thanks, Lukas