tree: https://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git arm64/entry-deasm-new head: 6b2f792068b31c949e04432af560cb18b0430880 commit: 1e1c052e17dae6864c0cba7dbd5106fed9e8c4b1 [18/25] arm64: entry: move do_notify_resume() to entry-common.c config: arm64-randconfig-r024-20200805 (attached as .config) compiler: aarch64-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 1e1c052e17dae6864c0cba7dbd5106fed9e8c4b1 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All warnings (new ones prefixed by >>): >> arch/arm64/kernel/entry-common.c:34:17: warning: no previous prototype for 'do_notify_resume' [-Wmissing-prototypes] 34 | asmlinkage void do_notify_resume(struct pt_regs *regs, | ^~~~~~~~~~~~~~~~ arch/arm64/kernel/entry-common.c:97:25: warning: no previous prototype for 'prepare_ret_from_fork' [-Wmissing-prototypes] 97 | asmlinkage void notrace prepare_ret_from_fork(void) | ^~~~~~~~~~~~~~~~~~~~~ arch/arm64/kernel/entry-common.c:159:13: warning: no previous prototype for 'el1_sync_handler' [-Wmissing-prototypes] 159 | EL1_HANDLER(el1_sync_handler, regs) | ^~~~~~~~~~~~~~~~ arch/arm64/kernel/entry-common.c:106:25: note: in definition of macro 'ELx_HANDLER' 106 | asmlinkage void notrace name(struct pt_regs *regs) \ | ^~~~ arch/arm64/kernel/entry-common.c:159:1: note: in expansion of macro 'EL1_HANDLER' 159 | EL1_HANDLER(el1_sync_handler, regs) | ^~~~~~~~~~~ arch/arm64/kernel/entry-common.c:313:13: warning: no previous prototype for 'el0_sync_handler' [-Wmissing-prototypes] 313 | EL0_HANDLER(el0_sync_handler, regs) | ^~~~~~~~~~~~~~~~ arch/arm64/kernel/entry-common.c:106:25: note: in definition of macro 'ELx_HANDLER' 106 | asmlinkage void notrace name(struct pt_regs *regs) \ | ^~~~ arch/arm64/kernel/entry-common.c:313:1: note: in expansion of macro 'EL0_HANDLER' 313 | EL0_HANDLER(el0_sync_handler, regs) | ^~~~~~~~~~~ arch/arm64/kernel/entry-common.c:451:13: warning: no previous prototype for 'el1_irq_handler' [-Wmissing-prototypes] 451 | EL1_HANDLER(el1_irq_handler, regs) | ^~~~~~~~~~~~~~~ arch/arm64/kernel/entry-common.c:106:25: note: in definition of macro 'ELx_HANDLER' 106 | asmlinkage void notrace name(struct pt_regs *regs) \ | ^~~~ arch/arm64/kernel/entry-common.c:451:1: note: in expansion of macro 'EL1_HANDLER' 451 | EL1_HANDLER(el1_irq_handler, regs) | ^~~~~~~~~~~ arch/arm64/kernel/entry-common.c:468:13: warning: no previous prototype for 'el0_irq_handler' [-Wmissing-prototypes] 468 | EL0_HANDLER(el0_irq_handler, regs) | ^~~~~~~~~~~~~~~ arch/arm64/kernel/entry-common.c:106:25: note: in definition of macro 'ELx_HANDLER' 106 | asmlinkage void notrace name(struct pt_regs *regs) \ | ^~~~ arch/arm64/kernel/entry-common.c:468:1: note: in expansion of macro 'EL0_HANDLER' 468 | EL0_HANDLER(el0_irq_handler, regs) | ^~~~~~~~~~~ arch/arm64/kernel/entry-common.c:478:13: warning: no previous prototype for 'el1_error_handler' [-Wmissing-prototypes] 478 | EL1_HANDLER(el1_error_handler, regs) | ^~~~~~~~~~~~~~~~~ arch/arm64/kernel/entry-common.c:106:25: note: in definition of macro 'ELx_HANDLER' 106 | asmlinkage void notrace name(struct pt_regs *regs) \ | ^~~~ arch/arm64/kernel/entry-common.c:478:1: note: in expansion of macro 'EL1_HANDLER' 478 | EL1_HANDLER(el1_error_handler, regs) | ^~~~~~~~~~~ arch/arm64/kernel/entry-common.c:486:13: warning: no previous prototype for 'el0_error_handler' [-Wmissing-prototypes] 486 | EL0_HANDLER(el0_error_handler, regs) | ^~~~~~~~~~~~~~~~~ arch/arm64/kernel/entry-common.c:106:25: note: in definition of macro 'ELx_HANDLER' 106 | asmlinkage void notrace name(struct pt_regs *regs) \ | ^~~~ arch/arm64/kernel/entry-common.c:486:1: note: in expansion of macro 'EL0_HANDLER' 486 | EL0_HANDLER(el0_error_handler, regs) | ^~~~~~~~~~~ vim +/do_notify_resume +34 arch/arm64/kernel/entry-common.c 33 > 34 asmlinkage void do_notify_resume(struct pt_regs *regs, 35 unsigned long thread_flags) 36 { 37 /* 38 * The assembly code enters us with IRQs off, but it hasn't 39 * informed the tracing code of that for efficiency reasons. 40 * Update the trace code with the current status. 41 */ 42 trace_hardirqs_off(); 43 44 do { 45 /* Check valid user FS if needed */ 46 addr_limit_user_check(); 47 48 if (thread_flags & _TIF_NEED_RESCHED) { 49 /* Unmask Debug and SError for the next task */ 50 local_daif_restore(DAIF_PROCCTX_NOIRQ); 51 52 schedule(); 53 } else { 54 local_daif_restore(DAIF_PROCCTX); 55 56 if (thread_flags & _TIF_UPROBE) 57 uprobe_notify_resume(regs); 58 59 if (thread_flags & _TIF_SIGPENDING) 60 do_signal(regs); 61 62 if (thread_flags & _TIF_NOTIFY_RESUME) { 63 clear_thread_flag(TIF_NOTIFY_RESUME); 64 tracehook_notify_resume(regs); 65 rseq_handle_notify_resume(NULL, regs); 66 } 67 68 if (thread_flags & _TIF_FOREIGN_FPSTATE) 69 fpsimd_restore_current_state(); 70 } 71 72 local_daif_mask(); 73 thread_flags = READ_ONCE(current_thread_info()->flags); 74 } while (thread_flags & _TIF_WORK_MASK); 75 } 76 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org