Re: [PATCH v2] PCI/VGA: Move pci_set_vga_state() to vgaarb.c

From: kernel test robot

Date: Sat Mar 14 2026 - 15:18:38 EST


Hi Bjorn,

kernel test robot noticed the following build errors:

[auto build test ERROR on pci/next]
[also build test ERROR on pci/for-linus next-20260313]
[cannot apply to linus/master v6.16-rc1]
[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/Bjorn-Helgaas/PCI-VGA-Move-pci_set_vga_state-to-vgaarb-c/20260314-150705
base: https://git.kernel.org/pub/scm/linux/kernel/git/pci/pci.git next
patch link: https://lore.kernel.org/r/20260312224713.1305228-1-bhelgaas%40google.com
patch subject: [PATCH v2] PCI/VGA: Move pci_set_vga_state() to vgaarb.c
config: x86_64-kexec (https://download.01.org/0day-ci/archive/20260314/202603142059.lRB5ARkv-lkp@xxxxxxxxx/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260314/202603142059.lRB5ARkv-lkp@xxxxxxxxx/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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202603142059.lRB5ARkv-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

>> drivers/pci/vgaarb.c:229:7: error: call to undeclared function 'pci_set_vga_state_arch'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
229 | rc = pci_set_vga_state_arch(dev, decode, command_bits, flags);
| ^
drivers/pci/vgaarb.c:229:7: note: did you mean 'pci_set_vga_state'?
drivers/pci/vgaarb.c:218:12: note: 'pci_set_vga_state' declared here
218 | static int pci_set_vga_state(struct pci_dev *dev, bool decode,
| ^
219 | unsigned int command_bits, u32 flags)
220 | {
221 | struct pci_bus *bus;
222 | struct pci_dev *bridge;
223 | u16 cmd;
224 | int rc;
225 |
226 | WARN_ON((flags & PCI_VGA_STATE_CHANGE_DECODES) && (command_bits & ~(PCI_COMMAND_IO|PCI_COMMAND_MEMORY)));
227 |
228 | /* ARCH specific VGA enables */
229 | rc = pci_set_vga_state_arch(dev, decode, command_bits, flags);
| ~~~~~~~~~~~~~~~~~~~~~~
| pci_set_vga_state
1 error generated.


vim +/pci_set_vga_state_arch +229 drivers/pci/vgaarb.c

209
210 /**
211 * pci_set_vga_state - set VGA decode state on device and parents if requested
212 * @dev: the PCI device
213 * @decode: true = enable decoding, false = disable decoding
214 * @command_bits: PCI_COMMAND_IO and/or PCI_COMMAND_MEMORY
215 * @flags: traverse ancestors and change bridges
216 * CHANGE_BRIDGE_ONLY / CHANGE_BRIDGE
217 */
218 static int pci_set_vga_state(struct pci_dev *dev, bool decode,
219 unsigned int command_bits, u32 flags)
220 {
221 struct pci_bus *bus;
222 struct pci_dev *bridge;
223 u16 cmd;
224 int rc;
225
226 WARN_ON((flags & PCI_VGA_STATE_CHANGE_DECODES) && (command_bits & ~(PCI_COMMAND_IO|PCI_COMMAND_MEMORY)));
227
228 /* ARCH specific VGA enables */
> 229 rc = pci_set_vga_state_arch(dev, decode, command_bits, flags);
230 if (rc)
231 return rc;
232
233 if (flags & PCI_VGA_STATE_CHANGE_DECODES) {
234 pci_read_config_word(dev, PCI_COMMAND, &cmd);
235 if (decode)
236 cmd |= command_bits;
237 else
238 cmd &= ~command_bits;
239 pci_write_config_word(dev, PCI_COMMAND, cmd);
240 }
241
242 if (!(flags & PCI_VGA_STATE_CHANGE_BRIDGE))
243 return 0;
244
245 bus = dev->bus;
246 while (bus) {
247 bridge = bus->self;
248 if (bridge) {
249 pci_read_config_word(bridge, PCI_BRIDGE_CONTROL,
250 &cmd);
251 if (decode)
252 cmd |= PCI_BRIDGE_CTL_VGA;
253 else
254 cmd &= ~PCI_BRIDGE_CTL_VGA;
255 pci_write_config_word(bridge, PCI_BRIDGE_CONTROL,
256 cmd);
257 }
258 bus = bus->parent;
259 }
260 return 0;
261 }
262

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki