Hi Mark, I love your patch! Perhaps something to improve: [auto build test WARNING on arm64/for-next/core] [also build test WARNING on rafael-pm/linux-next arm/for-next arm/fixes kvmarm/next soc/for-next xilinx-xlnx/master linus/master v6.2-rc3 next-20230109] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Mark-Rutland/Compiler-attributes-GCC-function-alignment-workarounds/20230109-220351 base: https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-next/core patch link: https://lore.kernel.org/r/20230109135828.879136-5-mark.rutland%40arm.com patch subject: [PATCH 4/8] ftrace: Add DYNAMIC_FTRACE_WITH_CALL_OPS config: mips-allmodconfig compiler: mips-linux-gcc (GCC) 12.1.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://github.com/intel-lab-lkp/linux/commit/2a23faafde92f517fcb8d1a56b2f89dddf0d693e git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Mark-Rutland/Compiler-attributes-GCC-function-alignment-workarounds/20230109-220351 git checkout 2a23faafde92f517fcb8d1a56b2f89dddf0d693e # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=mips olddefconfig COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=mips prepare If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot All warnings (new ones prefixed by >>): In file included from include/linux/compiler_types.h:79, from : include/linux/compiler_attributes.h:41:5: warning: "CONFIG_FUNCTION_ALIGNMENT" is not defined, evaluates to 0 [-Wundef] 41 | #if CONFIG_FUNCTION_ALIGNMENT > 0 | ^~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/compiler_attributes.h:96:36: warning: "CONFIG_FUNCTION_ALIGNMENT" is not defined, evaluates to 0 [-Wundef] 96 | #if !defined(CONFIG_CC_IS_GCC) || (CONFIG_FUNCTION_ALIGNMENT == 0) | ^~~~~~~~~~~~~~~~~~~~~~~~~ In file included from include/linux/perf_event.h:52, from include/linux/trace_events.h:10, from kernel/trace/synth_event_gen_test.c:9: >> include/linux/ftrace.h:62:50: warning: 'struct dyn_ftrace' declared inside parameter list will not be visible outside of this definition or declaration 62 | struct ftrace_ops *ftrace_find_unique_ops(struct dyn_ftrace *rec); | ^~~~~~~~~~ -- In file included from include/linux/compiler_types.h:79, from : include/linux/compiler_attributes.h:41:5: warning: "CONFIG_FUNCTION_ALIGNMENT" is not defined, evaluates to 0 [-Wundef] 41 | #if CONFIG_FUNCTION_ALIGNMENT > 0 | ^~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/compiler_attributes.h:96:36: warning: "CONFIG_FUNCTION_ALIGNMENT" is not defined, evaluates to 0 [-Wundef] 96 | #if !defined(CONFIG_CC_IS_GCC) || (CONFIG_FUNCTION_ALIGNMENT == 0) | ^~~~~~~~~~~~~~~~~~~~~~~~~ In file included from include/linux/kvm_host.h:32, from arch/mips/kernel/asm-offsets.c:24: >> include/linux/ftrace.h:62:50: warning: 'struct dyn_ftrace' declared inside parameter list will not be visible outside of this definition or declaration 62 | struct ftrace_ops *ftrace_find_unique_ops(struct dyn_ftrace *rec); | ^~~~~~~~~~ arch/mips/kernel/asm-offsets.c:26:6: warning: no previous prototype for 'output_ptreg_defines' [-Wmissing-prototypes] 26 | void output_ptreg_defines(void) | ^~~~~~~~~~~~~~~~~~~~ arch/mips/kernel/asm-offsets.c:78:6: warning: no previous prototype for 'output_task_defines' [-Wmissing-prototypes] 78 | void output_task_defines(void) | ^~~~~~~~~~~~~~~~~~~ arch/mips/kernel/asm-offsets.c:92:6: warning: no previous prototype for 'output_thread_info_defines' [-Wmissing-prototypes] 92 | void output_thread_info_defines(void) | ^~~~~~~~~~~~~~~~~~~~~~~~~~ arch/mips/kernel/asm-offsets.c:108:6: warning: no previous prototype for 'output_thread_defines' [-Wmissing-prototypes] 108 | void output_thread_defines(void) | ^~~~~~~~~~~~~~~~~~~~~ arch/mips/kernel/asm-offsets.c:136:6: warning: no previous prototype for 'output_thread_fpu_defines' [-Wmissing-prototypes] 136 | void output_thread_fpu_defines(void) | ^~~~~~~~~~~~~~~~~~~~~~~~~ arch/mips/kernel/asm-offsets.c:179:6: warning: no previous prototype for 'output_mm_defines' [-Wmissing-prototypes] 179 | void output_mm_defines(void) | ^~~~~~~~~~~~~~~~~ arch/mips/kernel/asm-offsets.c:213:6: warning: no previous prototype for 'output_sc_defines' [-Wmissing-prototypes] 213 | void output_sc_defines(void) | ^~~~~~~~~~~~~~~~~ arch/mips/kernel/asm-offsets.c:248:6: warning: no previous prototype for 'output_signal_defined' [-Wmissing-prototypes] 248 | void output_signal_defined(void) | ^~~~~~~~~~~~~~~~~~~~~ arch/mips/kernel/asm-offsets.c:315:6: warning: no previous prototype for 'output_pbe_defines' [-Wmissing-prototypes] 315 | void output_pbe_defines(void) | ^~~~~~~~~~~~~~~~~~ arch/mips/kernel/asm-offsets.c:327:6: warning: no previous prototype for 'output_pm_defines' [-Wmissing-prototypes] 327 | void output_pm_defines(void) | ^~~~~~~~~~~~~~~~~ arch/mips/kernel/asm-offsets.c:341:6: warning: no previous prototype for 'output_kvm_defines' [-Wmissing-prototypes] 341 | void output_kvm_defines(void) | ^~~~~~~~~~~~~~~~~~ arch/mips/kernel/asm-offsets.c:385:6: warning: no previous prototype for 'output_cps_defines' [-Wmissing-prototypes] 385 | void output_cps_defines(void) | ^~~~~~~~~~~~~~~~~~ -- In file included from include/linux/compiler_types.h:79, from : include/linux/compiler_attributes.h:41:5: warning: "CONFIG_FUNCTION_ALIGNMENT" is not defined, evaluates to 0 [-Wundef] 41 | #if CONFIG_FUNCTION_ALIGNMENT > 0 | ^~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/compiler_attributes.h:96:36: warning: "CONFIG_FUNCTION_ALIGNMENT" is not defined, evaluates to 0 [-Wundef] 96 | #if !defined(CONFIG_CC_IS_GCC) || (CONFIG_FUNCTION_ALIGNMENT == 0) | ^~~~~~~~~~~~~~~~~~~~~~~~~ In file included from include/linux/perf_event.h:52, from include/linux/trace_events.h:10, from include/trace/syscall.h:7, from include/linux/syscalls.h:88, from kernel/fork.c:55: >> include/linux/ftrace.h:62:50: warning: 'struct dyn_ftrace' declared inside parameter list will not be visible outside of this definition or declaration 62 | struct ftrace_ops *ftrace_find_unique_ops(struct dyn_ftrace *rec); | ^~~~~~~~~~ kernel/fork.c:162:13: warning: no previous prototype for 'arch_release_task_struct' [-Wmissing-prototypes] 162 | void __weak arch_release_task_struct(struct task_struct *tsk) | ^~~~~~~~~~~~~~~~~~~~~~~~ kernel/fork.c:849:20: warning: no previous prototype for 'arch_task_cache_init' [-Wmissing-prototypes] 849 | void __init __weak arch_task_cache_init(void) { } | ^~~~~~~~~~~~~~~~~~~~ -- In file included from include/linux/compiler_types.h:79, from : include/linux/compiler_attributes.h:41:5: warning: "CONFIG_FUNCTION_ALIGNMENT" is not defined, evaluates to 0 [-Wundef] 41 | #if CONFIG_FUNCTION_ALIGNMENT > 0 | ^~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/compiler_attributes.h:96:36: warning: "CONFIG_FUNCTION_ALIGNMENT" is not defined, evaluates to 0 [-Wundef] 96 | #if !defined(CONFIG_CC_IS_GCC) || (CONFIG_FUNCTION_ALIGNMENT == 0) | ^~~~~~~~~~~~~~~~~~~~~~~~~ In file included from include/linux/kprobes.h:28, from include/linux/kgdb.h:19, from kernel/panic.c:15: >> include/linux/ftrace.h:62:50: warning: 'struct dyn_ftrace' declared inside parameter list will not be visible outside of this definition or declaration 62 | struct ftrace_ops *ftrace_find_unique_ops(struct dyn_ftrace *rec); | ^~~~~~~~~~ kernel/panic.c: In function '__warn': kernel/panic.c:613:17: warning: function '__warn' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] 613 | vprintk(args->fmt, args->args); | ^~~~~~~ kernel/panic.c: At top level: kernel/panic.c:700:24: warning: no previous prototype for '__stack_chk_fail' [-Wmissing-prototypes] 700 | __visible noinstr void __stack_chk_fail(void) | ^~~~~~~~~~~~~~~~ -- In file included from include/linux/compiler_types.h:79, from : include/linux/compiler_attributes.h:41:5: warning: "CONFIG_FUNCTION_ALIGNMENT" is not defined, evaluates to 0 [-Wundef] 41 | #if CONFIG_FUNCTION_ALIGNMENT > 0 | ^~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/compiler_attributes.h:96:36: warning: "CONFIG_FUNCTION_ALIGNMENT" is not defined, evaluates to 0 [-Wundef] 96 | #if !defined(CONFIG_CC_IS_GCC) || (CONFIG_FUNCTION_ALIGNMENT == 0) | ^~~~~~~~~~~~~~~~~~~~~~~~~ In file included from include/linux/perf_event.h:52, from include/linux/trace_events.h:10, from include/trace/syscall.h:7, from include/linux/syscalls.h:88, from kernel/exit.c:42: >> include/linux/ftrace.h:62:50: warning: 'struct dyn_ftrace' declared inside parameter list will not be visible outside of this definition or declaration 62 | struct ftrace_ops *ftrace_find_unique_ops(struct dyn_ftrace *rec); | ^~~~~~~~~~ kernel/exit.c:1839:13: warning: no previous prototype for 'abort' [-Wmissing-prototypes] 1839 | __weak void abort(void) | ^~~~~ -- In file included from include/linux/compiler_types.h:79, from : include/linux/compiler_attributes.h:41:5: warning: "CONFIG_FUNCTION_ALIGNMENT" is not defined, evaluates to 0 [-Wundef] 41 | #if CONFIG_FUNCTION_ALIGNMENT > 0 | ^~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/compiler_attributes.h:96:36: warning: "CONFIG_FUNCTION_ALIGNMENT" is not defined, evaluates to 0 [-Wundef] 96 | #if !defined(CONFIG_CC_IS_GCC) || (CONFIG_FUNCTION_ALIGNMENT == 0) | ^~~~~~~~~~~~~~~~~~~~~~~~~ In file included from include/linux/perf_event.h:52, from include/linux/trace_events.h:10, from include/trace/syscall.h:7, from include/linux/syscalls.h:88, from kernel/signal.c:30: >> include/linux/ftrace.h:62:50: warning: 'struct dyn_ftrace' declared inside parameter list will not be visible outside of this definition or declaration 62 | struct ftrace_ops *ftrace_find_unique_ops(struct dyn_ftrace *rec); | ^~~~~~~~~~ kernel/signal.c:4771:6: warning: no previous prototype for 'kdb_send_sig' [-Wmissing-prototypes] 4771 | void kdb_send_sig(struct task_struct *t, int sig) | ^~~~~~~~~~~~ -- In file included from include/linux/compiler_types.h:79, from : include/linux/compiler_attributes.h:41:5: warning: "CONFIG_FUNCTION_ALIGNMENT" is not defined, evaluates to 0 [-Wundef] 41 | #if CONFIG_FUNCTION_ALIGNMENT > 0 | ^~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/compiler_attributes.h:96:36: warning: "CONFIG_FUNCTION_ALIGNMENT" is not defined, evaluates to 0 [-Wundef] 96 | #if !defined(CONFIG_CC_IS_GCC) || (CONFIG_FUNCTION_ALIGNMENT == 0) | ^~~~~~~~~~~~~~~~~~~~~~~~~ In file included from kernel/kallsyms.c:26: >> include/linux/ftrace.h:62:50: warning: 'struct dyn_ftrace' declared inside parameter list will not be visible outside of this definition or declaration 62 | struct ftrace_ops *ftrace_find_unique_ops(struct dyn_ftrace *rec); | ^~~~~~~~~~ kernel/kallsyms.c:571:12: warning: no previous prototype for 'arch_get_kallsym' [-Wmissing-prototypes] 571 | int __weak arch_get_kallsym(unsigned int symnum, unsigned long *value, | ^~~~~~~~~~~~~~~~ -- In file included from include/linux/compiler_types.h:79, from : include/linux/compiler_attributes.h:41:5: warning: "CONFIG_FUNCTION_ALIGNMENT" is not defined, evaluates to 0 [-Wundef] 41 | #if CONFIG_FUNCTION_ALIGNMENT > 0 | ^~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/compiler_attributes.h:96:36: warning: "CONFIG_FUNCTION_ALIGNMENT" is not defined, evaluates to 0 [-Wundef] 96 | #if !defined(CONFIG_CC_IS_GCC) || (CONFIG_FUNCTION_ALIGNMENT == 0) | ^~~~~~~~~~~~~~~~~~~~~~~~~ In file included from include/linux/perf_event.h:52, from include/linux/trace_events.h:10, from include/trace/syscall.h:7, from include/linux/syscalls.h:88, from kernel/audit.c:44: >> include/linux/ftrace.h:62:50: warning: 'struct dyn_ftrace' declared inside parameter list will not be visible outside of this definition or declaration 62 | struct ftrace_ops *ftrace_find_unique_ops(struct dyn_ftrace *rec); | ^~~~~~~~~~ kernel/audit.c:1813:14: warning: no previous prototype for 'audit_serial' [-Wmissing-prototypes] 1813 | unsigned int audit_serial(void) | ^~~~~~~~~~~~ kernel/audit.c: In function 'audit_log_vformat': kernel/audit.c:1963:9: warning: function 'audit_log_vformat' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] 1963 | len = vsnprintf(skb_tail_pointer(skb), avail, fmt, args); | ^~~ kernel/audit.c:1972:17: warning: function 'audit_log_vformat' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] 1972 | len = vsnprintf(skb_tail_pointer(skb), avail, fmt, args2); | ^~~ -- In file included from include/linux/compiler_types.h:79, from : include/linux/compiler_attributes.h:41:5: warning: "CONFIG_FUNCTION_ALIGNMENT" is not defined, evaluates to 0 [-Wundef] 41 | #if CONFIG_FUNCTION_ALIGNMENT > 0 | ^~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/compiler_attributes.h:96:36: warning: "CONFIG_FUNCTION_ALIGNMENT" is not defined, evaluates to 0 [-Wundef] 96 | #if !defined(CONFIG_CC_IS_GCC) || (CONFIG_FUNCTION_ALIGNMENT == 0) | ^~~~~~~~~~~~~~~~~~~~~~~~~ In file included from include/linux/perf_event.h:52, from include/linux/trace_events.h:10, from include/trace/syscall.h:7, from include/linux/syscalls.h:88, from arch/mips/kernel/signal.c:26: >> include/linux/ftrace.h:62:50: warning: 'struct dyn_ftrace' declared inside parameter list will not be visible outside of this definition or declaration 62 | struct ftrace_ops *ftrace_find_unique_ops(struct dyn_ftrace *rec); | ^~~~~~~~~~ arch/mips/kernel/signal.c:438:5: warning: no previous prototype for 'setup_sigcontext' [-Wmissing-prototypes] 438 | int setup_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc) | ^~~~~~~~~~~~~~~~ arch/mips/kernel/signal.c:515:5: warning: no previous prototype for 'restore_sigcontext' [-Wmissing-prototypes] 515 | int restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc) | ^~~~~~~~~~~~~~~~~~ arch/mips/kernel/signal.c:636:17: warning: no previous prototype for 'sys_sigreturn' [-Wmissing-prototypes] 636 | asmlinkage void sys_sigreturn(void) | ^~~~~~~~~~~~~ arch/mips/kernel/signal.c:673:17: warning: no previous prototype for 'sys_rt_sigreturn' [-Wmissing-prototypes] 673 | asmlinkage void sys_rt_sigreturn(void) | ^~~~~~~~~~~~~~~~ arch/mips/kernel/signal.c:903:17: warning: no previous prototype for 'do_notify_resume' [-Wmissing-prototypes] 903 | asmlinkage void do_notify_resume(struct pt_regs *regs, void *unused, | ^~~~~~~~~~~~~~~~ -- In file included from include/linux/compiler_types.h:79, from : include/linux/compiler_attributes.h:41:5: warning: "CONFIG_FUNCTION_ALIGNMENT" is not defined, evaluates to 0 [-Wundef] 41 | #if CONFIG_FUNCTION_ALIGNMENT > 0 | ^~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/compiler_attributes.h:96:36: warning: "CONFIG_FUNCTION_ALIGNMENT" is not defined, evaluates to 0 [-Wundef] 96 | #if !defined(CONFIG_CC_IS_GCC) || (CONFIG_FUNCTION_ALIGNMENT == 0) | ^~~~~~~~~~~~~~~~~~~~~~~~~ In file included from include/linux/perf_event.h:52, from include/linux/trace_events.h:10, from include/trace/syscall.h:7, from include/linux/syscalls.h:88, from arch/mips/kernel/syscall.c:17: >> include/linux/ftrace.h:62:50: warning: 'struct dyn_ftrace' declared inside parameter list will not be visible outside of this definition or declaration 62 | struct ftrace_ops *ftrace_find_unique_ops(struct dyn_ftrace *rec); | ^~~~~~~~~~ arch/mips/kernel/syscall.c:51:16: warning: no previous prototype for 'sysm_pipe' [-Wmissing-prototypes] 51 | asmlinkage int sysm_pipe(void) | ^~~~~~~~~ -- In file included from include/linux/compiler_types.h:79, from : include/linux/compiler_attributes.h:41:5: warning: "CONFIG_FUNCTION_ALIGNMENT" is not defined, evaluates to 0 [-Wundef] 41 | #if CONFIG_FUNCTION_ALIGNMENT > 0 | ^~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/compiler_attributes.h:96:36: warning: "CONFIG_FUNCTION_ALIGNMENT" is not defined, evaluates to 0 [-Wundef] 96 | #if !defined(CONFIG_CC_IS_GCC) || (CONFIG_FUNCTION_ALIGNMENT == 0) | ^~~~~~~~~~~~~~~~~~~~~~~~~ In file included from include/linux/kprobes.h:28, from include/linux/kgdb.h:19, from arch/mips/kernel/traps.c:34: >> include/linux/ftrace.h:62:50: warning: 'struct dyn_ftrace' declared inside parameter list will not be visible outside of this definition or declaration 62 | struct ftrace_ops *ftrace_find_unique_ops(struct dyn_ftrace *rec); | ^~~~~~~~~~ arch/mips/kernel/traps.c:370:6: warning: no previous prototype for 'show_registers' [-Wmissing-prototypes] 370 | void show_registers(struct pt_regs *regs) | ^~~~~~~~~~~~~~ arch/mips/kernel/traps.c:447:17: warning: no previous prototype for 'do_be' [-Wmissing-prototypes] 447 | asmlinkage void do_be(struct pt_regs *regs) | ^~~~~ arch/mips/kernel/traps.c:752:17: warning: no previous prototype for 'do_ov' [-Wmissing-prototypes] 752 | asmlinkage void do_ov(struct pt_regs *regs) | ^~~~~ arch/mips/kernel/traps.c:874:17: warning: no previous prototype for 'do_fpe' [-Wmissing-prototypes] 874 | asmlinkage void do_fpe(struct pt_regs *regs, unsigned long fcr31) | ^~~~~~ arch/mips/kernel/traps.c:1027:17: warning: no previous prototype for 'do_bp' [-Wmissing-prototypes] 1027 | asmlinkage void do_bp(struct pt_regs *regs) | ^~~~~ arch/mips/kernel/traps.c:1114:17: warning: no previous prototype for 'do_tr' [-Wmissing-prototypes] 1114 | asmlinkage void do_tr(struct pt_regs *regs) | ^~~~~ arch/mips/kernel/traps.c:1151:17: warning: no previous prototype for 'do_ri' [-Wmissing-prototypes] 1151 | asmlinkage void do_ri(struct pt_regs *regs) | ^~~~~ arch/mips/kernel/traps.c:1402:17: warning: no previous prototype for 'do_cpu' [-Wmissing-prototypes] 1402 | asmlinkage void do_cpu(struct pt_regs *regs) | ^~~~~~ arch/mips/kernel/traps.c:1507:17: warning: no previous prototype for 'do_msa_fpe' [-Wmissing-prototypes] 1507 | asmlinkage void do_msa_fpe(struct pt_regs *regs, unsigned int msacsr) | ^~~~~~~~~~ arch/mips/kernel/traps.c:1527:17: warning: no previous prototype for 'do_msa' [-Wmissing-prototypes] 1527 | asmlinkage void do_msa(struct pt_regs *regs) | ^~~~~~ arch/mips/kernel/traps.c:1548:17: warning: no previous prototype for 'do_mdmx' [-Wmissing-prototypes] 1548 | asmlinkage void do_mdmx(struct pt_regs *regs) | ^~~~~~~ arch/mips/kernel/traps.c:1560:17: warning: no previous prototype for 'do_watch' [-Wmissing-prototypes] 1560 | asmlinkage void do_watch(struct pt_regs *regs) | ^~~~~~~~ arch/mips/kernel/traps.c:1587:17: warning: no previous prototype for 'do_mcheck' [-Wmissing-prototypes] 1587 | asmlinkage void do_mcheck(struct pt_regs *regs) | ^~~~~~~~~ arch/mips/kernel/traps.c: In function 'do_mcheck': arch/mips/kernel/traps.c:1590:24: warning: variable 'prev_state' set but not used [-Wunused-but-set-variable] 1590 | enum ctx_state prev_state; | ^~~~~~~~~~ arch/mips/kernel/traps.c: At top level: arch/mips/kernel/traps.c:1612:17: warning: no previous prototype for 'do_mt' [-Wmissing-prototypes] 1612 | asmlinkage void do_mt(struct pt_regs *regs) | ^~~~~ arch/mips/kernel/traps.c:1648:17: warning: no previous prototype for 'do_dsp' [-Wmissing-prototypes] 1648 | asmlinkage void do_dsp(struct pt_regs *regs) | ^~~~~~ arch/mips/kernel/traps.c:1656:17: warning: no previous prototype for 'do_reserved' [-Wmissing-prototypes] 1656 | asmlinkage void do_reserved(struct pt_regs *regs) | ^~~~~~~~~~~ arch/mips/kernel/traps.c:1832:17: warning: no previous prototype for 'cache_parity_error' [-Wmissing-prototypes] 1832 | asmlinkage void cache_parity_error(void) | ^~~~~~~~~~~~~~~~~~ arch/mips/kernel/traps.c:1880:17: warning: no previous prototype for 'do_ftlb' [-Wmissing-prototypes] 1880 | asmlinkage void do_ftlb(void) | ^~~~~~~ arch/mips/kernel/traps.c:1909:17: warning: no previous prototype for 'do_gsexc' [-Wmissing-prototypes] 1909 | asmlinkage void do_gsexc(struct pt_regs *regs, u32 diag1) | ^~~~~~~~ arch/mips/kernel/traps.c:1944:6: warning: no previous prototype for 'ejtag_exception_handler' [-Wmissing-prototypes] 1944 | void ejtag_exception_handler(struct pt_regs *regs) | ^~~~~~~~~~~~~~~~~~~~~~~ arch/mips/kernel/traps.c:1989:17: warning: no previous prototype for 'nmi_exception_handler' [-Wmissing-prototypes] 1989 | void __noreturn nmi_exception_handler(struct pt_regs *regs) | ^~~~~~~~~~~~~~~~~~~~~ .. vim +62 include/linux/ftrace.h 42 43 #ifdef CONFIG_FUNCTION_TRACER 44 /* 45 * If the arch's mcount caller does not support all of ftrace's 46 * features, then it must call an indirect function that 47 * does. Or at least does enough to prevent any unwelcome side effects. 48 * 49 * Also define the function prototype that these architectures use 50 * to call the ftrace_ops_list_func(). 51 */ 52 #if !ARCH_SUPPORTS_FTRACE_OPS 53 # define FTRACE_FORCE_LIST_FUNC 1 54 void arch_ftrace_ops_list_func(unsigned long ip, unsigned long parent_ip); 55 #else 56 # define FTRACE_FORCE_LIST_FUNC 0 57 void arch_ftrace_ops_list_func(unsigned long ip, unsigned long parent_ip, 58 struct ftrace_ops *op, struct ftrace_regs *fregs); 59 #endif 60 extern const struct ftrace_ops ftrace_nop_ops; 61 extern const struct ftrace_ops ftrace_list_ops; > 62 struct ftrace_ops *ftrace_find_unique_ops(struct dyn_ftrace *rec); 63 #endif /* CONFIG_FUNCTION_TRACER */ 64 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests