Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: 9304/1: add prototype for function called only from asm

When building with 'make W=1', the compiler warns about any function
definition that does not come with a prototype in a header, to ensure
it matches what the caller expects.

This includes functions that are only ever caller from assembly
code and don't technically need a declaration:

arch/arm/kernel/ftrace.c:227:6: error: no previous prototype for 'prepare_ftrace_return'
arch/arm/kernel/ptrace.c:850:16: error: no previous prototype for 'syscall_trace_enter'
arch/arm/kernel/ptrace.c:878:17: error: no previous prototype for 'syscall_trace_exit'
arch/arm/kernel/signal.c:601:1: error: no previous prototype for 'do_work_pending'
arch/arm/kernel/signal.c:672:17: error: no previous prototype for 'do_rseq_syscall'
arch/arm/kernel/suspend.c:75:6: error: no previous prototype for '__cpu_suspend_save'
arch/arm/kernel/traps.c:451:17: error: no previous prototype for 'do_undefinstr'
arch/arm/kernel/traps.c:516:39: error: no previous prototype for 'handle_fiq_as_nmi'
arch/arm/kernel/traps.c:535:17: error: no previous prototype for 'bad_mode'
arch/arm/kernel/traps.c:608:16: error: no previous prototype for 'arm_syscall'
arch/arm/kernel/traps.c:734:1: error: no previous prototype for 'baddataabort'
arch/arm/kernel/traps.c:774:17: error: no previous prototype for '__div0'
arch/arm/kernel/traps.c:97:6: error: no previous prototype for 'dump_backtrace_stm'
arch/arm/kernel/unwind.c:40:6: error: no previous prototype for '__aeabi_unwind_cpp_pr0'
arch/arm/kernel/unwind.c:45:6: error: no previous prototype for '__aeabi_unwind_cpp_pr1'
arch/arm/kernel/unwind.c:50:6: error: no previous prototype for '__aeabi_unwind_cpp_pr2'
arch/arm/mm/fault.c:554:1: error: no previous prototype for 'do_DataAbort'
arch/arm/mm/fault.c:584:1: error: no previous prototype for 'do_PrefetchAbort'
arch/arm/mm/proc-v7-bugs.c:280:6: error: no previous prototype for 'cpu_v7_ca8_ibe'
arch/arm/mm/proc-v7-bugs.c:293:6: error: no previous prototype for 'cpu_v7_bugs_init'
arch/arm/vdso/vgettimeofday.c:36:6: error: no previous prototype for '__aeabi_unwind_cpp_pr0'
arch/arm/vdso/vgettimeofday.c:40:6: error: no previous prototype for '__aeabi_unwind_cpp_pr1'
arch/arm/vdso/vgettimeofday.c:44:6: error: no previous prototype for '__aeabi_unwind_cpp_pr2'
arch/arm/vfp/vfpmodule.c:323:6: error: no previous prototype for 'VFP_bounce'

Add the prototypes anyway, to allow enabling this warning by default in
the future.

Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>

authored by

Arnd Bergmann and committed by
Russell King (Oracle)
ae1f8d79 1b9c3ddc

+35
+4
arch/arm/include/asm/ftrace.h
··· 75 75 return !strcasecmp(sym, name); 76 76 } 77 77 78 + void prepare_ftrace_return(unsigned long *parent, unsigned long self, 79 + unsigned long frame_pointer, 80 + unsigned long stack_pointer); 81 + 78 82 #endif /* ifndef __ASSEMBLY__ */ 79 83 80 84 #endif /* _ASM_ARM_FTRACE */
+3
arch/arm/include/asm/ptrace.h
··· 193 193 return cpsr; 194 194 } 195 195 196 + int syscall_trace_enter(struct pt_regs *regs); 197 + void syscall_trace_exit(struct pt_regs *regs); 198 + 196 199 #endif /* __ASSEMBLY__ */ 197 200 #endif
+5
arch/arm/include/asm/signal.h
··· 22 22 #define __ARCH_HAS_SA_RESTORER 23 23 24 24 #include <asm/sigcontext.h> 25 + 26 + void do_rseq_syscall(struct pt_regs *regs); 27 + int do_work_pending(struct pt_regs *regs, unsigned int thread_flags, 28 + int syscall); 29 + 25 30 #endif
+4
arch/arm/include/asm/spectre.h
··· 35 35 36 36 int spectre_bhb_update_vectors(unsigned int method); 37 37 38 + void cpu_v7_ca8_ibe(void); 39 + void cpu_v7_ca15_ibe(void); 40 + void cpu_v7_bugs_init(void); 41 + 38 42 #endif
+1
arch/arm/include/asm/suspend.h
··· 13 13 extern void cpu_resume_no_hyp(void); 14 14 extern void cpu_resume_arm(void); 15 15 extern int cpu_suspend(unsigned long, int (*)(unsigned long)); 16 + extern void __cpu_suspend_save(u32 *ptr, u32 ptrsz, u32 sp, u32 *save_ptr); 16 17 17 18 #endif
+9
arch/arm/include/asm/traps.h
··· 35 35 36 36 extern void *vectors_page; 37 37 38 + asmlinkage void dump_backtrace_stm(u32 *stack, u32 instruction, const char *loglvl); 39 + asmlinkage void do_undefinstr(struct pt_regs *regs); 40 + asmlinkage void handle_fiq_as_nmi(struct pt_regs *regs); 41 + asmlinkage void bad_mode(struct pt_regs *regs, int reason); 42 + asmlinkage int arm_syscall(int no, struct pt_regs *regs); 43 + asmlinkage void baddataabort(int code, unsigned long instr, struct pt_regs *regs); 44 + asmlinkage void __div0(void); 45 + asmlinkage void handle_bad_stack(struct pt_regs *regs); 46 + 38 47 #endif
+4
arch/arm/include/asm/unwind.h
··· 40 40 extern void unwind_backtrace(struct pt_regs *regs, struct task_struct *tsk, 41 41 const char *loglvl); 42 42 43 + void __aeabi_unwind_cpp_pr0(void); 44 + void __aeabi_unwind_cpp_pr1(void); 45 + void __aeabi_unwind_cpp_pr2(void); 46 + 43 47 #endif /* !__ASSEMBLY__ */ 44 48 45 49 #ifdef CONFIG_ARM_UNWIND
+1
arch/arm/include/asm/vfp.h
··· 102 102 103 103 #ifndef __ASSEMBLY__ 104 104 void vfp_disable(void); 105 + void VFP_bounce(u32 trigger, u32 fpexc, struct pt_regs *regs); 105 106 #endif 106 107 107 108 #endif /* __ASM_VFP_H */
+4
arch/arm/mm/fault.h
··· 37 37 38 38 void do_bad_area(unsigned long addr, unsigned int fsr, struct pt_regs *regs); 39 39 void early_abt_enable(void); 40 + asmlinkage void do_DataAbort(unsigned long addr, unsigned int fsr, 41 + struct pt_regs *regs); 42 + asmlinkage void do_PrefetchAbort(unsigned long addr, unsigned int ifsr, 43 + struct pt_regs *regs); 40 44 41 45 #endif /* __ARCH_ARM_FAULT_H */