lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202009031913.jPeEtBPE%lkp@intel.com>
Date:   Thu, 3 Sep 2020 19:44:22 +0800
From:   kernel test robot <lkp@...el.com>
To:     Thomas Bogendoerfer <tbogendoerfer@...e.de>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org,
        Paul Burton <paulburton@...nel.org>
Subject: arch/mips/kernel/traps.c:2408: undefined reference to `handle_fpe'

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 <lkp@...el.com>

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 <ralf@...ux-mips.org>
:::::: CC: Ralf Baechle <ralf@...ux-mips.org>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

Download attachment ".config.gz" of type "application/gzip" (25789 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ