Re: [PATCH v3 2/5] PCI: Put PCIe ports with downstream devices into D3 at hibernate

kernel test robot
2025-06-09T08:30:43Z

Hi Mario,

kernel test robot noticed the following build errors:

[auto build test ERROR on rafael-pm/linux-next]
[also build test ERROR on rafael-pm/bleeding-edge mkp-scsi/for-next jejb-scsi/for-next linus/master v6.16-rc1 next-20250606]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Mario-Limonciello/PM-Use-hibernate-flows-for-system-power-off/20250609-105658
base: https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git linux-next
patch link: https://lore.kernel.org/r/20250609024619.407257-3-superm1%40kernel.org
patch subject: [PATCH v3 2/5] PCI: Put PCIe ports with downstream devices into D3 at hibernate
config: i386-buildonly-randconfig-003-20250609 (https://download.01.org/0day-ci/archive/20250609/202506091639.HaxwbWtd-lkp@intel.com/config)
compiler: clang version 20.1.2 (https://github.com/llvm/llvm-project 58df0ef89dd64126512e4ee27b4ac3fd8ddf6247)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250609/202506091639.HaxwbWtd-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202506091639.HaxwbWtd-lkp@intel.com/

All errors (new ones prefixed by >>):

>> drivers/pci/pci-driver.c:1221:7: error: call to undeclared function 'pci_pm_set_prepare_bus_pm'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
1221 | if (!pci_pm_set_prepare_bus_pm(pci_dev))
| ^
1 error generated.

vim +/pci_pm_set_prepare_bus_pm +1221 drivers/pci/pci-driver.c

1195
1196 static int pci_pm_poweroff_noirq(struct device *dev)
1197 {
1198 struct pci_dev *pci_dev = to_pci_dev(dev);
1199 const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
1200
1201 if (dev_pm_skip_suspend(dev))
1202 return 0;
1203
1204 if (pci_has_legacy_pm_support(pci_dev))
1205 return pci_legacy_suspend_late(dev);
1206
1207 if (!pm) {
1208 pci_fixup_device(pci_fixup_suspend_late, pci_dev);
1209 return 0;
1210 }
1211
1212 if (pm->poweroff_noirq) {
1213 int error;
1214
1215 error = pm->poweroff_noirq(dev);
1216 suspend_report_result(dev, pm->poweroff_noirq, error);
1217 if (error)
1218 return error;
1219 }
1220
> 1221 if (!pci_pm_set_prepare_bus_pm(pci_dev))
1222 goto Fixup;
1223
1224 /*
1225 * The reason for doing this here is the same as for the analogous code
1226 * in pci_pm_suspend_noirq().
1227 */
1228 if (pci_dev->class == PCI_CLASS_SERIAL_USB_EHCI)
1229 pci_write_config_word(pci_dev, PCI_COMMAND, 0);
1230
1231 Fixup:
1232 pci_fixup_device(pci_fixup_suspend_late, pci_dev);
1233
1234 return 0;
1235 }
1236

--
0-DAY CI Kernel Test Service