Hi Mike, First bad commit (maybe != root cause): tree: https://git.kernel.org/pub/scm/linux/kernel/git/rppt/linux.git memory-models/rm-discontig/v1 head: bb9fe24d1b478332cc8352e9325bab67f7ee4ba4 commit: 84c2db1652b92c2e1b1714c688227ab8bd2c09bd [1/9] alpha: remove DISCONTIGMEM and NUMA config: alpha-allnoconfig (attached as .config) compiler: alpha-linux-gcc (GCC) 9.3.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://git.kernel.org/pub/scm/linux/kernel/git/rppt/linux.git/commit/?id=84c2db1652b92c2e1b1714c688227ab8bd2c09bd git remote add rppt https://git.kernel.org/pub/scm/linux/kernel/git/rppt/linux.git git fetch --no-tags rppt memory-models/rm-discontig/v1 git checkout 84c2db1652b92c2e1b1714c688227ab8bd2c09bd # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=alpha If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): arch/alpha/kernel/core_marvel.c: In function 'io7_init_hose': >> arch/alpha/kernel/core_marvel.c:290:38: error: implicit declaration of function 'marvel_cpuid_to_nid'; did you mean 'marvel_pci_tbi'? [-Werror=implicit-function-declaration] 290 | hose->sg_isa = iommu_arena_new_node(marvel_cpuid_to_nid(io7->pe), | ^~~~~~~~~~~~~~~~~~~ | marvel_pci_tbi arch/alpha/kernel/core_marvel.c: At top level: arch/alpha/kernel/core_marvel.c:361:1: warning: no previous prototype for 'marvel_io7_present' [-Wmissing-prototypes] 361 | marvel_io7_present(gct6_node *node) | ^~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors vim +290 arch/alpha/kernel/core_marvel.c ^1da177e4c3f41 Linus Torvalds 2005-04-16 199 ^1da177e4c3f41 Linus Torvalds 2005-04-16 200 ^1da177e4c3f41 Linus Torvalds 2005-04-16 201 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 202 * IO7 PCI, PCI/X, AGP configuration. ^1da177e4c3f41 Linus Torvalds 2005-04-16 203 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 204 static void __init ^1da177e4c3f41 Linus Torvalds 2005-04-16 205 io7_init_hose(struct io7 *io7, int port) ^1da177e4c3f41 Linus Torvalds 2005-04-16 206 { ^1da177e4c3f41 Linus Torvalds 2005-04-16 207 static int hose_index = 0; ^1da177e4c3f41 Linus Torvalds 2005-04-16 208 ^1da177e4c3f41 Linus Torvalds 2005-04-16 209 struct pci_controller *hose = alloc_pci_controller(); ^1da177e4c3f41 Linus Torvalds 2005-04-16 210 struct io7_port *io7_port = &io7->ports[port]; ^1da177e4c3f41 Linus Torvalds 2005-04-16 211 io7_ioport_csrs *csrs = IO7_CSRS_KERN(io7->pe, port); ^1da177e4c3f41 Linus Torvalds 2005-04-16 212 int i; ^1da177e4c3f41 Linus Torvalds 2005-04-16 213 ^1da177e4c3f41 Linus Torvalds 2005-04-16 214 hose->index = hose_index++; /* arbitrary */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 215 ^1da177e4c3f41 Linus Torvalds 2005-04-16 216 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 217 * We don't have an isa or legacy hose, but glibc expects to be ^1da177e4c3f41 Linus Torvalds 2005-04-16 218 * able to use the bus == 0 / dev == 0 form of the iobase syscall ^1da177e4c3f41 Linus Torvalds 2005-04-16 219 * to determine information about the i/o system. Since XFree86 ^1da177e4c3f41 Linus Torvalds 2005-04-16 220 * relies on glibc's determination to tell whether or not to use ^1da177e4c3f41 Linus Torvalds 2005-04-16 221 * sparse access, we need to point the pci_isa_hose at a real hose ^1da177e4c3f41 Linus Torvalds 2005-04-16 222 * so at least that determination is correct. ^1da177e4c3f41 Linus Torvalds 2005-04-16 223 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 224 if (hose->index == 0) ^1da177e4c3f41 Linus Torvalds 2005-04-16 225 pci_isa_hose = hose; ^1da177e4c3f41 Linus Torvalds 2005-04-16 226 ^1da177e4c3f41 Linus Torvalds 2005-04-16 227 io7_port->csrs = csrs; ^1da177e4c3f41 Linus Torvalds 2005-04-16 228 io7_port->hose = hose; ^1da177e4c3f41 Linus Torvalds 2005-04-16 229 hose->sysdata = io7_port; ^1da177e4c3f41 Linus Torvalds 2005-04-16 230 ^1da177e4c3f41 Linus Torvalds 2005-04-16 231 hose->io_space = alloc_resource(); ^1da177e4c3f41 Linus Torvalds 2005-04-16 232 hose->mem_space = alloc_resource(); ^1da177e4c3f41 Linus Torvalds 2005-04-16 233 ^1da177e4c3f41 Linus Torvalds 2005-04-16 234 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 235 * Base addresses for userland consumption. Since these are going ^1da177e4c3f41 Linus Torvalds 2005-04-16 236 * to be mapped, they are pure physical addresses. ^1da177e4c3f41 Linus Torvalds 2005-04-16 237 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 238 hose->sparse_mem_base = hose->sparse_io_base = 0; ^1da177e4c3f41 Linus Torvalds 2005-04-16 239 hose->dense_mem_base = IO7_MEM_PHYS(io7->pe, port); ^1da177e4c3f41 Linus Torvalds 2005-04-16 240 hose->dense_io_base = IO7_IO_PHYS(io7->pe, port); ^1da177e4c3f41 Linus Torvalds 2005-04-16 241 ^1da177e4c3f41 Linus Torvalds 2005-04-16 242 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 243 * Base addresses and resource ranges for kernel consumption. ^1da177e4c3f41 Linus Torvalds 2005-04-16 244 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 245 hose->config_space_base = (unsigned long)IO7_CONF_KERN(io7->pe, port); ^1da177e4c3f41 Linus Torvalds 2005-04-16 246 ^1da177e4c3f41 Linus Torvalds 2005-04-16 247 hose->io_space->start = (unsigned long)IO7_IO_KERN(io7->pe, port); ^1da177e4c3f41 Linus Torvalds 2005-04-16 248 hose->io_space->end = hose->io_space->start + IO7_IO_SPACE - 1; ^1da177e4c3f41 Linus Torvalds 2005-04-16 249 hose->io_space->name = mk_resource_name(io7->pe, port, "IO"); ^1da177e4c3f41 Linus Torvalds 2005-04-16 250 hose->io_space->flags = IORESOURCE_IO; ^1da177e4c3f41 Linus Torvalds 2005-04-16 251 ^1da177e4c3f41 Linus Torvalds 2005-04-16 252 hose->mem_space->start = (unsigned long)IO7_MEM_KERN(io7->pe, port); ^1da177e4c3f41 Linus Torvalds 2005-04-16 253 hose->mem_space->end = hose->mem_space->start + IO7_MEM_SPACE - 1; ^1da177e4c3f41 Linus Torvalds 2005-04-16 254 hose->mem_space->name = mk_resource_name(io7->pe, port, "MEM"); ^1da177e4c3f41 Linus Torvalds 2005-04-16 255 hose->mem_space->flags = IORESOURCE_MEM; ^1da177e4c3f41 Linus Torvalds 2005-04-16 256 ^1da177e4c3f41 Linus Torvalds 2005-04-16 257 if (request_resource(&ioport_resource, hose->io_space) < 0) ^1da177e4c3f41 Linus Torvalds 2005-04-16 258 printk(KERN_ERR "Failed to request IO on hose %d\n", ^1da177e4c3f41 Linus Torvalds 2005-04-16 259 hose->index); ^1da177e4c3f41 Linus Torvalds 2005-04-16 260 if (request_resource(&iomem_resource, hose->mem_space) < 0) ^1da177e4c3f41 Linus Torvalds 2005-04-16 261 printk(KERN_ERR "Failed to request MEM on hose %d\n", ^1da177e4c3f41 Linus Torvalds 2005-04-16 262 hose->index); ^1da177e4c3f41 Linus Torvalds 2005-04-16 263 ^1da177e4c3f41 Linus Torvalds 2005-04-16 264 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 265 * Save the existing DMA window settings for later restoration. ^1da177e4c3f41 Linus Torvalds 2005-04-16 266 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 267 for (i = 0; i < 4; i++) { ^1da177e4c3f41 Linus Torvalds 2005-04-16 268 io7_port->saved_wbase[i] = csrs->POx_WBASE[i].csr; ^1da177e4c3f41 Linus Torvalds 2005-04-16 269 io7_port->saved_wmask[i] = csrs->POx_WMASK[i].csr; ^1da177e4c3f41 Linus Torvalds 2005-04-16 270 io7_port->saved_tbase[i] = csrs->POx_TBASE[i].csr; ^1da177e4c3f41 Linus Torvalds 2005-04-16 271 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 272 ^1da177e4c3f41 Linus Torvalds 2005-04-16 273 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 274 * Set up the PCI to main memory translation windows. ^1da177e4c3f41 Linus Torvalds 2005-04-16 275 * ^1da177e4c3f41 Linus Torvalds 2005-04-16 276 * Window 0 is scatter-gather 8MB at 8MB ^1da177e4c3f41 Linus Torvalds 2005-04-16 277 * Window 1 is direct access 1GB at 2GB ^1da177e4c3f41 Linus Torvalds 2005-04-16 278 * Window 2 is scatter-gather (up-to) 1GB at 3GB ^1da177e4c3f41 Linus Torvalds 2005-04-16 279 * Window 3 is disabled ^1da177e4c3f41 Linus Torvalds 2005-04-16 280 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 281 ^1da177e4c3f41 Linus Torvalds 2005-04-16 282 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 283 * TBIA before modifying windows. ^1da177e4c3f41 Linus Torvalds 2005-04-16 284 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 285 marvel_pci_tbi(hose, 0, -1); ^1da177e4c3f41 Linus Torvalds 2005-04-16 286 ^1da177e4c3f41 Linus Torvalds 2005-04-16 287 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 288 * Set up window 0 for scatter-gather 8MB at 8MB. ^1da177e4c3f41 Linus Torvalds 2005-04-16 289 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 @290 hose->sg_isa = iommu_arena_new_node(marvel_cpuid_to_nid(io7->pe), ^1da177e4c3f41 Linus Torvalds 2005-04-16 291 hose, 0x00800000, 0x00800000, 0); ^1da177e4c3f41 Linus Torvalds 2005-04-16 292 hose->sg_isa->align_entry = 8; /* cache line boundary */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 293 csrs->POx_WBASE[0].csr = ^1da177e4c3f41 Linus Torvalds 2005-04-16 294 hose->sg_isa->dma_base | wbase_m_ena | wbase_m_sg; ^1da177e4c3f41 Linus Torvalds 2005-04-16 295 csrs->POx_WMASK[0].csr = (hose->sg_isa->size - 1) & wbase_m_addr; ^1da177e4c3f41 Linus Torvalds 2005-04-16 296 csrs->POx_TBASE[0].csr = virt_to_phys(hose->sg_isa->ptes); ^1da177e4c3f41 Linus Torvalds 2005-04-16 297 ^1da177e4c3f41 Linus Torvalds 2005-04-16 298 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 299 * Set up window 1 for direct-mapped 1GB at 2GB. ^1da177e4c3f41 Linus Torvalds 2005-04-16 300 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 301 csrs->POx_WBASE[1].csr = __direct_map_base | wbase_m_ena; ^1da177e4c3f41 Linus Torvalds 2005-04-16 302 csrs->POx_WMASK[1].csr = (__direct_map_size - 1) & wbase_m_addr; ^1da177e4c3f41 Linus Torvalds 2005-04-16 303 csrs->POx_TBASE[1].csr = 0; ^1da177e4c3f41 Linus Torvalds 2005-04-16 304 ^1da177e4c3f41 Linus Torvalds 2005-04-16 305 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 306 * Set up window 2 for scatter-gather (up-to) 1GB at 3GB. ^1da177e4c3f41 Linus Torvalds 2005-04-16 307 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 308 hose->sg_pci = iommu_arena_new_node(marvel_cpuid_to_nid(io7->pe), ^1da177e4c3f41 Linus Torvalds 2005-04-16 309 hose, 0xc0000000, 0x40000000, 0); ^1da177e4c3f41 Linus Torvalds 2005-04-16 310 hose->sg_pci->align_entry = 8; /* cache line boundary */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 311 csrs->POx_WBASE[2].csr = ^1da177e4c3f41 Linus Torvalds 2005-04-16 312 hose->sg_pci->dma_base | wbase_m_ena | wbase_m_sg; ^1da177e4c3f41 Linus Torvalds 2005-04-16 313 csrs->POx_WMASK[2].csr = (hose->sg_pci->size - 1) & wbase_m_addr; ^1da177e4c3f41 Linus Torvalds 2005-04-16 314 csrs->POx_TBASE[2].csr = virt_to_phys(hose->sg_pci->ptes); ^1da177e4c3f41 Linus Torvalds 2005-04-16 315 ^1da177e4c3f41 Linus Torvalds 2005-04-16 316 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 317 * Disable window 3. ^1da177e4c3f41 Linus Torvalds 2005-04-16 318 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 319 csrs->POx_WBASE[3].csr = 0; ^1da177e4c3f41 Linus Torvalds 2005-04-16 320 ^1da177e4c3f41 Linus Torvalds 2005-04-16 321 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 322 * Make sure that the AGP Monster Window is disabled. ^1da177e4c3f41 Linus Torvalds 2005-04-16 323 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 324 csrs->POx_CTRL.csr &= ~(1UL << 61); ^1da177e4c3f41 Linus Torvalds 2005-04-16 325 :::::: The code@line 290 was first introduced by commit :::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2 :::::: TO: Linus Torvalds :::::: CC: Linus Torvalds --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org