Hi Thomas, FYI, the error/warning still remains.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: fc3abb53250a90ba2150eebd182137c136f4d25a commit: 7505576d1c1ac0cfe85fdf90999433dd8b673012 MIPS: add support for SGI Octane (IP30) date: 10 months ago config: mips-randconfig-r022-20200903 (attached as .config) compiler: mips64-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 git checkout 7505576d1c1ac0cfe85fdf90999433dd8b673012 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=mips If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> All errors (new ones prefixed by >>): mips64-linux-ld: arch/mips/kernel/signal.o: in function `restore_hw_fp_context': arch/mips/kernel/signal.c:141: undefined reference to `_restore_fp_context' mips64-linux-ld: arch/mips/kernel/signal.o: in function `save_hw_fp_context': arch/mips/kernel/signal.c:132: undefined reference to `_save_fp_context' mips64-linux-ld: arch/mips/kernel/traps.o: in function `trap_init': >> arch/mips/kernel/traps.c:2408: undefined reference to `handle_fpe' >> mips64-linux-ld: arch/mips/kernel/traps.c:2412: undefined reference to >> `handle_fpe' >> mips64-linux-ld: arch/mips/kernel/traps.c:2412: undefined reference to >> `handle_fpe' # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7505576d1c1ac0cfe85fdf90999433dd8b673012 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout 7505576d1c1ac0cfe85fdf90999433dd8b673012 vim +2408 arch/mips/kernel/traps.c 5b10496b6e6577f Atsushi Nemoto 2006-09-11 2267 ^1da177e4c3f415 Linus Torvalds 2005-04-16 2268 void __init trap_init(void) ^1da177e4c3f415 Linus Torvalds 2005-04-16 2269 { 2a0b24f56c2492b Steven J. Hill 2013-03-25 2270 extern char except_vec3_generic; ^1da177e4c3f415 Linus Torvalds 2005-04-16 2271 extern char except_vec4; 2a0b24f56c2492b Steven J. Hill 2013-03-25 2272 extern char except_vec3_r4000; 172dcd935c34b02 Paul Burton 2019-04-30 2273 unsigned long i, vec_size; 172dcd935c34b02 Paul Burton 2019-04-30 2274 phys_addr_t ebase_pa; c65a5480ff29198 Atsushi Nemoto 2007-11-12 2275 c65a5480ff29198 Atsushi Nemoto 2007-11-12 2276 check_wait(); ^1da177e4c3f415 Linus Torvalds 2005-04-16 2277 172dcd935c34b02 Paul Burton 2019-04-30 2278 if (!cpu_has_mips_r2_r6) { 172dcd935c34b02 Paul Burton 2019-04-30 2279 ebase = CAC_BASE; 172dcd935c34b02 Paul Burton 2019-04-30 2280 ebase_pa = virt_to_phys((void *)ebase); 172dcd935c34b02 Paul Burton 2019-04-30 2281 vec_size = 0x400; c195e079e9dd00f James Hogan 2016-09-01 2282 172dcd935c34b02 Paul Burton 2019-04-30 2283 memblock_reserve(ebase_pa, vec_size); 172dcd935c34b02 Paul Burton 2019-04-30 2284 } else { 172dcd935c34b02 Paul Burton 2019-04-30 2285 if (cpu_has_veic || cpu_has_vint) 172dcd935c34b02 Paul Burton 2019-04-30 2286 vec_size = 0x200 + VECTORSPACING*64; 172dcd935c34b02 Paul Burton 2019-04-30 2287 else 172dcd935c34b02 Paul Burton 2019-04-30 2288 vec_size = PAGE_SIZE; 172dcd935c34b02 Paul Burton 2019-04-30 2289 172dcd935c34b02 Paul Burton 2019-04-30 2290 ebase_pa = memblock_phys_alloc(vec_size, 1 << fls(vec_size)); f995adb0ac5bcfa Paul Burton 2019-04-30 2291 if (!ebase_pa) 8a7f97b902f4fb0 Mike Rapoport 2019-03-11 2292 panic("%s: Failed to allocate %lu bytes align=0x%x\n", 172dcd935c34b02 Paul Burton 2019-04-30 2293 __func__, vec_size, 1 << fls(vec_size)); c195e079e9dd00f James Hogan 2016-09-01 2294 c195e079e9dd00f James Hogan 2016-09-01 2295 /* c195e079e9dd00f James Hogan 2016-09-01 2296 * Try to ensure ebase resides in KSeg0 if possible. c195e079e9dd00f James Hogan 2016-09-01 2297 * c195e079e9dd00f James Hogan 2016-09-01 2298 * It shouldn't generally be in XKPhys on MIPS64 to avoid c195e079e9dd00f James Hogan 2016-09-01 2299 * hitting a poorly defined exception base for Cache Errors. c195e079e9dd00f James Hogan 2016-09-01 2300 * The allocation is likely to be in the low 512MB of physical, c195e079e9dd00f James Hogan 2016-09-01 2301 * in which case we should be able to convert to KSeg0. c195e079e9dd00f James Hogan 2016-09-01 2302 * c195e079e9dd00f James Hogan 2016-09-01 2303 * EVA is special though as it allows segments to be rearranged c195e079e9dd00f James Hogan 2016-09-01 2304 * and to become uncached during cache error handling. c195e079e9dd00f James Hogan 2016-09-01 2305 */ c195e079e9dd00f James Hogan 2016-09-01 2306 if (!IS_ENABLED(CONFIG_EVA) && !WARN_ON(ebase_pa >= 0x20000000)) c195e079e9dd00f James Hogan 2016-09-01 2307 ebase = CKSEG0ADDR(ebase_pa); f995adb0ac5bcfa Paul Burton 2019-04-30 2308 else f995adb0ac5bcfa Paul Burton 2019-04-30 2309 ebase = (unsigned long)phys_to_virt(ebase_pa); 18022894eca1315 James Hogan 2016-09-01 2310 } e01402b115cccb6 Ralf Baechle 2005-07-14 2311 c6213c6c9c189ae Steven J. Hill 2013-06-05 2312 if (cpu_has_mmips) { c6213c6c9c189ae Steven J. Hill 2013-06-05 2313 unsigned int config3 = read_c0_config3(); c6213c6c9c189ae Steven J. Hill 2013-06-05 2314 c6213c6c9c189ae Steven J. Hill 2013-06-05 2315 if (IS_ENABLED(CONFIG_CPU_MICROMIPS)) c6213c6c9c189ae Steven J. Hill 2013-06-05 2316 write_c0_config3(config3 | MIPS_CONF3_ISA_OE); c6213c6c9c189ae Steven J. Hill 2013-06-05 2317 else c6213c6c9c189ae Steven J. Hill 2013-06-05 2318 write_c0_config3(config3 & ~MIPS_CONF3_ISA_OE); c6213c6c9c189ae Steven J. Hill 2013-06-05 2319 } c6213c6c9c189ae Steven J. Hill 2013-06-05 2320 6fb97effee5374a Kevin Cernekee 2011-11-16 2321 if (board_ebase_setup) 6fb97effee5374a Kevin Cernekee 2011-11-16 2322 board_ebase_setup(); 6650df3c380e0db David Daney 2012-05-15 2323 per_cpu_trap_init(true); 25517ed4e99b3be Huacai Chen 2018-11-10 2324 memblock_set_bottom_up(false); ^1da177e4c3f415 Linus Torvalds 2005-04-16 2325 ^1da177e4c3f415 Linus Torvalds 2005-04-16 2326 /* ^1da177e4c3f415 Linus Torvalds 2005-04-16 2327 * Copy the generic exception handlers to their final destination. 92a76f6d8545efc Adam Buchbinder 2016-02-25 2328 * This will be overridden later as suitable for a particular ^1da177e4c3f415 Linus Torvalds 2005-04-16 2329 * configuration. ^1da177e4c3f415 Linus Torvalds 2005-04-16 2330 */ e01402b115cccb6 Ralf Baechle 2005-07-14 2331 set_handler(0x180, &except_vec3_generic, 0x80); ^1da177e4c3f415 Linus Torvalds 2005-04-16 2332 ^1da177e4c3f415 Linus Torvalds 2005-04-16 2333 /* ^1da177e4c3f415 Linus Torvalds 2005-04-16 2334 * Setup default vectors ^1da177e4c3f415 Linus Torvalds 2005-04-16 2335 */ ^1da177e4c3f415 Linus Torvalds 2005-04-16 2336 for (i = 0; i <= 31; i++) ^1da177e4c3f415 Linus Torvalds 2005-04-16 2337 set_except_vector(i, handle_reserved); ^1da177e4c3f415 Linus Torvalds 2005-04-16 2338 ^1da177e4c3f415 Linus Torvalds 2005-04-16 2339 /* ^1da177e4c3f415 Linus Torvalds 2005-04-16 2340 * Copy the EJTAG debug exception vector handler code to it's final ^1da177e4c3f415 Linus Torvalds 2005-04-16 2341 * destination. ^1da177e4c3f415 Linus Torvalds 2005-04-16 2342 */ e01402b115cccb6 Ralf Baechle 2005-07-14 2343 if (cpu_has_ejtag && board_ejtag_handler_setup) e01402b115cccb6 Ralf Baechle 2005-07-14 2344 board_ejtag_handler_setup(); ^1da177e4c3f415 Linus Torvalds 2005-04-16 2345 ^1da177e4c3f415 Linus Torvalds 2005-04-16 2346 /* ^1da177e4c3f415 Linus Torvalds 2005-04-16 2347 * Only some CPUs have the watch exceptions. ^1da177e4c3f415 Linus Torvalds 2005-04-16 2348 */ ^1da177e4c3f415 Linus Torvalds 2005-04-16 2349 if (cpu_has_watch) 1b505defe051749 James Hogan 2015-12-16 2350 set_except_vector(EXCCODE_WATCH, handle_watch); ^1da177e4c3f415 Linus Torvalds 2005-04-16 2351 ^1da177e4c3f415 Linus Torvalds 2005-04-16 2352 /* e01402b115cccb6 Ralf Baechle 2005-07-14 2353 * Initialise interrupt handlers ^1da177e4c3f415 Linus Torvalds 2005-04-16 2354 */ e01402b115cccb6 Ralf Baechle 2005-07-14 2355 if (cpu_has_veic || cpu_has_vint) { e01402b115cccb6 Ralf Baechle 2005-07-14 2356 int nvec = cpu_has_veic ? 64 : 8; e01402b115cccb6 Ralf Baechle 2005-07-14 2357 for (i = 0; i < nvec; i++) e01402b115cccb6 Ralf Baechle 2005-07-14 2358 set_vi_handler(i, NULL); e01402b115cccb6 Ralf Baechle 2005-07-14 2359 } e01402b115cccb6 Ralf Baechle 2005-07-14 2360 else if (cpu_has_divec) e01402b115cccb6 Ralf Baechle 2005-07-14 2361 set_handler(0x200, &except_vec4, 0x8); ^1da177e4c3f415 Linus Torvalds 2005-04-16 2362 ^1da177e4c3f415 Linus Torvalds 2005-04-16 2363 /* ^1da177e4c3f415 Linus Torvalds 2005-04-16 2364 * Some CPUs can enable/disable for cache parity detection, but does ^1da177e4c3f415 Linus Torvalds 2005-04-16 2365 * it different ways. ^1da177e4c3f415 Linus Torvalds 2005-04-16 2366 */ ^1da177e4c3f415 Linus Torvalds 2005-04-16 2367 parity_protection_init(); ^1da177e4c3f415 Linus Torvalds 2005-04-16 2368 ^1da177e4c3f415 Linus Torvalds 2005-04-16 2369 /* ^1da177e4c3f415 Linus Torvalds 2005-04-16 2370 * The Data Bus Errors / Instruction Bus Errors are signaled ^1da177e4c3f415 Linus Torvalds 2005-04-16 2371 * by external hardware. Therefore these two exceptions ^1da177e4c3f415 Linus Torvalds 2005-04-16 2372 * may have board specific handlers. ^1da177e4c3f415 Linus Torvalds 2005-04-16 2373 */ ^1da177e4c3f415 Linus Torvalds 2005-04-16 2374 if (board_be_init) ^1da177e4c3f415 Linus Torvalds 2005-04-16 2375 board_be_init(); ^1da177e4c3f415 Linus Torvalds 2005-04-16 2376 1b505defe051749 James Hogan 2015-12-16 2377 set_except_vector(EXCCODE_INT, using_rollback_handler() ? 1b505defe051749 James Hogan 2015-12-16 2378 rollback_handle_int : handle_int); 1b505defe051749 James Hogan 2015-12-16 2379 set_except_vector(EXCCODE_MOD, handle_tlbm); 1b505defe051749 James Hogan 2015-12-16 2380 set_except_vector(EXCCODE_TLBL, handle_tlbl); 1b505defe051749 James Hogan 2015-12-16 2381 set_except_vector(EXCCODE_TLBS, handle_tlbs); ^1da177e4c3f415 Linus Torvalds 2005-04-16 2382 1b505defe051749 James Hogan 2015-12-16 2383 set_except_vector(EXCCODE_ADEL, handle_adel); 1b505defe051749 James Hogan 2015-12-16 2384 set_except_vector(EXCCODE_ADES, handle_ades); ^1da177e4c3f415 Linus Torvalds 2005-04-16 2385 1b505defe051749 James Hogan 2015-12-16 2386 set_except_vector(EXCCODE_IBE, handle_ibe); 1b505defe051749 James Hogan 2015-12-16 2387 set_except_vector(EXCCODE_DBE, handle_dbe); ^1da177e4c3f415 Linus Torvalds 2005-04-16 2388 1b505defe051749 James Hogan 2015-12-16 2389 set_except_vector(EXCCODE_SYS, handle_sys); 1b505defe051749 James Hogan 2015-12-16 2390 set_except_vector(EXCCODE_BP, handle_bp); 5a34133167dce36 Huacai Chen 2017-03-16 2391 5a34133167dce36 Huacai Chen 2017-03-16 2392 if (rdhwr_noopt) 5a34133167dce36 Huacai Chen 2017-03-16 2393 set_except_vector(EXCCODE_RI, handle_ri); 5a34133167dce36 Huacai Chen 2017-03-16 2394 else { 5a34133167dce36 Huacai Chen 2017-03-16 2395 if (cpu_has_vtag_icache) 5a34133167dce36 Huacai Chen 2017-03-16 2396 set_except_vector(EXCCODE_RI, handle_ri_rdhwr_tlbp); 268a2d60013049c Jiaxun Yang 2019-10-20 2397 else if (current_cpu_type() == CPU_LOONGSON64) 5a34133167dce36 Huacai Chen 2017-03-16 2398 set_except_vector(EXCCODE_RI, handle_ri_rdhwr_tlbp); 5a34133167dce36 Huacai Chen 2017-03-16 2399 else 5a34133167dce36 Huacai Chen 2017-03-16 2400 set_except_vector(EXCCODE_RI, handle_ri_rdhwr); 5a34133167dce36 Huacai Chen 2017-03-16 2401 } 5a34133167dce36 Huacai Chen 2017-03-16 2402 1b505defe051749 James Hogan 2015-12-16 2403 set_except_vector(EXCCODE_CPU, handle_cpu); 1b505defe051749 James Hogan 2015-12-16 2404 set_except_vector(EXCCODE_OV, handle_ov); 1b505defe051749 James Hogan 2015-12-16 2405 set_except_vector(EXCCODE_TR, handle_tr); 1b505defe051749 James Hogan 2015-12-16 2406 set_except_vector(EXCCODE_MSAFPE, handle_msa_fpe); ^1da177e4c3f415 Linus Torvalds 2005-04-16 2407 e01402b115cccb6 Ralf Baechle 2005-07-14 @2408 if (board_nmi_handler_setup) e01402b115cccb6 Ralf Baechle 2005-07-14 2409 board_nmi_handler_setup(); e01402b115cccb6 Ralf Baechle 2005-07-14 2410 e50c0a8fa60da9a Ralf Baechle 2005-05-31 2411 if (cpu_has_fpu && !cpu_has_nofpuex) 1b505defe051749 James Hogan 2015-12-16 @2412 set_except_vector(EXCCODE_FPE, handle_fpe); e50c0a8fa60da9a Ralf Baechle 2005-05-31 2413 1b505defe051749 James Hogan 2015-12-16 2414 set_except_vector(MIPS_EXCCODE_TLBPAR, handle_ftlb); 5890f70f15c52d0 Leonid Yegoshin 2014-07-15 2415 5890f70f15c52d0 Leonid Yegoshin 2014-07-15 2416 if (cpu_has_rixiex) { 1b505defe051749 James Hogan 2015-12-16 2417 set_except_vector(EXCCODE_TLBRI, tlb_do_page_fault_0); 1b505defe051749 James Hogan 2015-12-16 2418 set_except_vector(EXCCODE_TLBXI, tlb_do_page_fault_0); 5890f70f15c52d0 Leonid Yegoshin 2014-07-15 2419 } 5890f70f15c52d0 Leonid Yegoshin 2014-07-15 2420 1b505defe051749 James Hogan 2015-12-16 2421 set_except_vector(EXCCODE_MSADIS, handle_msa); 1b505defe051749 James Hogan 2015-12-16 2422 set_except_vector(EXCCODE_MDMX, handle_mdmx); e50c0a8fa60da9a Ralf Baechle 2005-05-31 2423 e50c0a8fa60da9a Ralf Baechle 2005-05-31 2424 if (cpu_has_mcheck) 1b505defe051749 James Hogan 2015-12-16 2425 set_except_vector(EXCCODE_MCHECK, handle_mcheck); e50c0a8fa60da9a Ralf Baechle 2005-05-31 2426 340ee4b98c0543b Ralf Baechle 2005-08-17 2427 if (cpu_has_mipsmt) 1b505defe051749 James Hogan 2015-12-16 2428 set_except_vector(EXCCODE_THREAD, handle_mt); 340ee4b98c0543b Ralf Baechle 2005-08-17 2429 1b505defe051749 James Hogan 2015-12-16 2430 set_except_vector(EXCCODE_DSPDIS, handle_dsp); e50c0a8fa60da9a Ralf Baechle 2005-05-31 2431 fcbf1dfde3da728 David Daney 2012-05-15 2432 if (board_cache_error_setup) fcbf1dfde3da728 David Daney 2012-05-15 2433 board_cache_error_setup(); fcbf1dfde3da728 David Daney 2012-05-15 2434 e50c0a8fa60da9a Ralf Baechle 2005-05-31 2435 if (cpu_has_vce) e50c0a8fa60da9a Ralf Baechle 2005-05-31 2436 /* Special exception: R4[04]00 uses also the divec space. */ 2a0b24f56c2492b Steven J. Hill 2013-03-25 2437 set_handler(0x180, &except_vec3_r4000, 0x100); e50c0a8fa60da9a Ralf Baechle 2005-05-31 2438 else if (cpu_has_4kex) 2a0b24f56c2492b Steven J. Hill 2013-03-25 2439 set_handler(0x180, &except_vec3_generic, 0x80); e50c0a8fa60da9a Ralf Baechle 2005-05-31 2440 else 2a0b24f56c2492b Steven J. Hill 2013-03-25 2441 set_handler(0x080, &except_vec3_generic, 0x80); e50c0a8fa60da9a Ralf Baechle 2005-05-31 2442 783454e2bc7ce49 Paul Burton 2019-04-30 2443 local_flush_icache_range(ebase, ebase + vec_size); 0510617b85758b6 Thomas Bogendoerfer 2008-08-04 2444 0510617b85758b6 Thomas Bogendoerfer 2008-08-04 2445 sort_extable(__start___dbe_table, __stop___dbe_table); 69f3a7de1f1ec93 Ralf Baechle 2009-11-24 2446 4483b159168d3db Ralf Baechle 2010-08-05 2447 cu2_notifier(default_cu2_call, 0x80000000); /* Run last */ ^1da177e4c3f415 Linus Torvalds 2005-04-16 2448 } ae4ce45419f908c James Hogan 2014-03-04 2449 :::::: The code at line 2408 was first introduced by commit :::::: e01402b115cccb6357f956649487aca2c6f7fbba More AP / SP bits for the 34K, the Malta bits and things. Still wants a little polishing. :::::: TO: Ralf Baechle <[email protected]> :::::: CC: Ralf Baechle <[email protected]> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected]
.config.gz
Description: application/gzip

