tree: https://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git for-linus head: 3018c5d59f923be2fa2d91c4ce02c8d97a37edce commit: 3018c5d59f923be2fa2d91c4ce02c8d97a37edce [3/3] x86/PCI: Preserve host bridge windows completely covered by E820 config: x86_64-randconfig-a002 (https://download.01.org/0day-ci/archive/20220310/202203101540.DAEpd9Mt-lkp@xxxxxxxxx/config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 reproduce (this is a W=1 build): # https://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git/commit/?id=3018c5d59f923be2fa2d91c4ce02c8d97a37edce git remote add helgaas-pci https://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git git fetch --no-tags helgaas-pci for-linus git checkout 3018c5d59f923be2fa2d91c4ce02c8d97a37edce # save the config file to linux build tree mkdir build_dir make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> All errors (new ones prefixed by >>): arch/x86/kernel/resource.c: In function 'remove_e820_regions': arch/x86/kernel/resource.c:51:18: warning: missing terminating " character 51 | dev_info(dev, "resource %pR fully covered by e820 entry | ^ arch/x86/kernel/resource.c:52:24: warning: missing terminating " character 52 | [mem %#010Lx-%#010Lx]\n", | ^ In file included from arch/x86/kernel/resource.c:2: >> arch/x86/kernel/resource.c:51:18: error: missing terminating " character 51 | dev_info(dev, "resource %pR fully covered by e820 entry | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/dev_printk.h:110:16: note: in definition of macro 'dev_printk_index_wrap' 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ include/linux/dev_printk.h:150:51: note: in expansion of macro 'dev_fmt' 150 | dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__) | ^~~~~~~ arch/x86/kernel/resource.c:51:4: note: in expansion of macro 'dev_info' 51 | dev_info(dev, "resource %pR fully covered by e820 entry | ^~~~~~~~ >> arch/x86/kernel/resource.c:52:1: error: expected expression before '[' token 52 | [mem %#010Lx-%#010Lx]\n", | ^ include/linux/dev_printk.h:110:16: note: in definition of macro 'dev_printk_index_wrap' 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ include/linux/dev_printk.h:150:51: note: in expansion of macro 'dev_fmt' 150 | dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__) | ^~~~~~~ arch/x86/kernel/resource.c:51:4: note: in expansion of macro 'dev_info' 51 | dev_info(dev, "resource %pR fully covered by e820 entry | ^~~~~~~~ >> arch/x86/kernel/resource.c:52:2: error: 'mem' undeclared (first use in this function); did you mean 'sem'? 52 | [mem %#010Lx-%#010Lx]\n", | ^~~ include/linux/dev_printk.h:110:16: note: in definition of macro 'dev_printk_index_wrap' 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ include/linux/dev_printk.h:150:51: note: in expansion of macro 'dev_fmt' 150 | dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__) | ^~~~~~~ arch/x86/kernel/resource.c:51:4: note: in expansion of macro 'dev_info' 51 | dev_info(dev, "resource %pR fully covered by e820 entry | ^~~~~~~~ arch/x86/kernel/resource.c:52:2: note: each undeclared identifier is reported only once for each function it appears in 52 | [mem %#010Lx-%#010Lx]\n", | ^~~ include/linux/dev_printk.h:110:16: note: in definition of macro 'dev_printk_index_wrap' 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ include/linux/dev_printk.h:150:51: note: in expansion of macro 'dev_fmt' 150 | dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__) | ^~~~~~~ arch/x86/kernel/resource.c:51:4: note: in expansion of macro 'dev_info' 51 | dev_info(dev, "resource %pR fully covered by e820 entry | ^~~~~~~~ >> arch/x86/kernel/resource.c:52:7: error: stray '#' in program 52 | [mem %#010Lx-%#010Lx]\n", | ^ include/linux/dev_printk.h:110:16: note: in definition of macro 'dev_printk_index_wrap' 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ include/linux/dev_printk.h:150:51: note: in expansion of macro 'dev_fmt' 150 | dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__) | ^~~~~~~ arch/x86/kernel/resource.c:51:4: note: in expansion of macro 'dev_info' 51 | dev_info(dev, "resource %pR fully covered by e820 entry | ^~~~~~~~ >> arch/x86/kernel/resource.c:52:8: error: invalid suffix "Lx" on integer constant 52 | [mem %#010Lx-%#010Lx]\n", | ^~~~~ include/linux/dev_printk.h:110:16: note: in definition of macro 'dev_printk_index_wrap' 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ include/linux/dev_printk.h:150:51: note: in expansion of macro 'dev_fmt' 150 | dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__) | ^~~~~~~ arch/x86/kernel/resource.c:51:4: note: in expansion of macro 'dev_info' 51 | dev_info(dev, "resource %pR fully covered by e820 entry | ^~~~~~~~ arch/x86/kernel/resource.c:52:15: error: stray '#' in program 52 | [mem %#010Lx-%#010Lx]\n", | ^ include/linux/dev_printk.h:110:16: note: in definition of macro 'dev_printk_index_wrap' 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ include/linux/dev_printk.h:150:51: note: in expansion of macro 'dev_fmt' 150 | dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__) | ^~~~~~~ arch/x86/kernel/resource.c:51:4: note: in expansion of macro 'dev_info' 51 | dev_info(dev, "resource %pR fully covered by e820 entry | ^~~~~~~~ arch/x86/kernel/resource.c:52:16: error: invalid suffix "Lx" on integer constant 52 | [mem %#010Lx-%#010Lx]\n", | ^~~~~ include/linux/dev_printk.h:110:16: note: in definition of macro 'dev_printk_index_wrap' 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ include/linux/dev_printk.h:150:51: note: in expansion of macro 'dev_fmt' 150 | dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__) | ^~~~~~~ arch/x86/kernel/resource.c:51:4: note: in expansion of macro 'dev_info' 51 | dev_info(dev, "resource %pR fully covered by e820 entry | ^~~~~~~~ arch/x86/kernel/resource.c:52:22: error: stray '\' in program 52 | [mem %#010Lx-%#010Lx]\n", | ^ include/linux/dev_printk.h:110:16: note: in definition of macro 'dev_printk_index_wrap' 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ include/linux/dev_printk.h:150:51: note: in expansion of macro 'dev_fmt' 150 | dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__) | ^~~~~~~ arch/x86/kernel/resource.c:51:4: note: in expansion of macro 'dev_info' 51 | dev_info(dev, "resource %pR fully covered by e820 entry | ^~~~~~~~ >> arch/x86/kernel/resource.c:52:23: error: expected ')' before 'n' 52 | [mem %#010Lx-%#010Lx]\n", | ^ include/linux/dev_printk.h:110:16: note: in definition of macro 'dev_printk_index_wrap' 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ include/linux/dev_printk.h:150:51: note: in expansion of macro 'dev_fmt' 150 | dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__) | ^~~~~~~ arch/x86/kernel/resource.c:51:4: note: in expansion of macro 'dev_info' 51 | dev_info(dev, "resource %pR fully covered by e820 entry | ^~~~~~~~ arch/x86/kernel/resource.c:52:24: error: missing terminating " character 52 | [mem %#010Lx-%#010Lx]\n", | ^~ include/linux/dev_printk.h:110:16: note: in definition of macro 'dev_printk_index_wrap' 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~ include/linux/dev_printk.h:150:51: note: in expansion of macro 'dev_fmt' 150 | dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__) | ^~~~~~~ arch/x86/kernel/resource.c:51:4: note: in expansion of macro 'dev_info' 51 | dev_info(dev, "resource %pR fully covered by e820 entry | ^~~~~~~~ vim +51 arch/x86/kernel/resource.c 26 27 void remove_e820_regions(struct device *dev, struct resource *avail) 28 { 29 struct resource orig = *avail; 30 int i; 31 struct e820_entry *entry; 32 u64 e820_start, e820_end; 33 34 if (!(avail->flags & IORESOURCE_MEM)) 35 return; 36 37 for (i = 0; i < e820_table->nr_entries; i++) { 38 entry = &e820_table->entries[i]; 39 e820_start = entry->addr; 40 e820_end = entry->addr + entry->size - 1; 41 42 /* 43 * If an E820 entry covers just part of the resource, we 44 * assume E820 is telling us about something like host 45 * bridge register space that is unavailable for PCI 46 * devices. But if it covers the *entire* resource, it's 47 * more likely just telling us that this is MMIO space, and 48 * that doesn't need to be removed. 49 */ 50 if (e820_start <= avail->start && avail->end <= e820_end) { > 51 dev_info(dev, "resource %pR fully covered by e820 entry > 52 [mem %#010Lx-%#010Lx]\n", 53 avail, e820_start, e820_end); 54 55 continue; 56 } 57 58 resource_clip(avail, e820_start, e820_end); 59 if (orig.start != avail->start || orig.end != avail->end) { 60 dev_info(dev, "clipped %pR to %pR for e820 entry [mem %#010Lx-%#010Lx]\n", 61 &orig, avail, e820_start, e820_end); 62 orig = *avail; 63 } 64 } 65 } 66 --- 0-DAY CI Kernel Test Service https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx