mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	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>
This commit is contained in:
		
							parent
							
								
									1b9c3ddcec
								
							
						
					
					
						commit
						ae1f8d793a
					
				
					 9 changed files with 35 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -75,6 +75,10 @@ static inline bool arch_syscall_match_sym_name(const char *sym,
 | 
			
		|||
	return !strcasecmp(sym, name);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void prepare_ftrace_return(unsigned long *parent, unsigned long self,
 | 
			
		||||
			   unsigned long frame_pointer,
 | 
			
		||||
			   unsigned long stack_pointer);
 | 
			
		||||
 | 
			
		||||
#endif /* ifndef __ASSEMBLY__ */
 | 
			
		||||
 | 
			
		||||
#endif /* _ASM_ARM_FTRACE */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -193,5 +193,8 @@ static inline unsigned long it_advance(unsigned long cpsr)
 | 
			
		|||
	return cpsr;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int syscall_trace_enter(struct pt_regs *regs);
 | 
			
		||||
void syscall_trace_exit(struct pt_regs *regs);
 | 
			
		||||
 | 
			
		||||
#endif /* __ASSEMBLY__ */
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -22,4 +22,9 @@ typedef struct {
 | 
			
		|||
#define __ARCH_HAS_SA_RESTORER
 | 
			
		||||
 | 
			
		||||
#include <asm/sigcontext.h>
 | 
			
		||||
 | 
			
		||||
void do_rseq_syscall(struct pt_regs *regs);
 | 
			
		||||
int do_work_pending(struct pt_regs *regs, unsigned int thread_flags,
 | 
			
		||||
		    int syscall);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -35,4 +35,8 @@ static inline void spectre_v2_update_state(unsigned int state,
 | 
			
		|||
 | 
			
		||||
int spectre_bhb_update_vectors(unsigned int method);
 | 
			
		||||
 | 
			
		||||
void cpu_v7_ca8_ibe(void);
 | 
			
		||||
void cpu_v7_ca15_ibe(void);
 | 
			
		||||
void cpu_v7_bugs_init(void);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,5 +13,6 @@ extern void cpu_resume(void);
 | 
			
		|||
extern void cpu_resume_no_hyp(void);
 | 
			
		||||
extern void cpu_resume_arm(void);
 | 
			
		||||
extern int cpu_suspend(unsigned long, int (*)(unsigned long));
 | 
			
		||||
extern void __cpu_suspend_save(u32 *ptr, u32 ptrsz, u32 sp, u32 *save_ptr);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -35,4 +35,13 @@ extern void ptrace_break(struct pt_regs *regs);
 | 
			
		|||
 | 
			
		||||
extern void *vectors_page;
 | 
			
		||||
 | 
			
		||||
asmlinkage void dump_backtrace_stm(u32 *stack, u32 instruction, const char *loglvl);
 | 
			
		||||
asmlinkage void do_undefinstr(struct pt_regs *regs);
 | 
			
		||||
asmlinkage void handle_fiq_as_nmi(struct pt_regs *regs);
 | 
			
		||||
asmlinkage void bad_mode(struct pt_regs *regs, int reason);
 | 
			
		||||
asmlinkage int arm_syscall(int no, struct pt_regs *regs);
 | 
			
		||||
asmlinkage void baddataabort(int code, unsigned long instr, struct pt_regs *regs);
 | 
			
		||||
asmlinkage void __div0(void);
 | 
			
		||||
asmlinkage void handle_bad_stack(struct pt_regs *regs);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -40,6 +40,10 @@ extern void unwind_table_del(struct unwind_table *tab);
 | 
			
		|||
extern void unwind_backtrace(struct pt_regs *regs, struct task_struct *tsk,
 | 
			
		||||
			     const char *loglvl);
 | 
			
		||||
 | 
			
		||||
void __aeabi_unwind_cpp_pr0(void);
 | 
			
		||||
void __aeabi_unwind_cpp_pr1(void);
 | 
			
		||||
void __aeabi_unwind_cpp_pr2(void);
 | 
			
		||||
 | 
			
		||||
#endif	/* !__ASSEMBLY__ */
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_ARM_UNWIND
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -102,6 +102,7 @@
 | 
			
		|||
 | 
			
		||||
#ifndef __ASSEMBLY__
 | 
			
		||||
void vfp_disable(void);
 | 
			
		||||
void VFP_bounce(u32 trigger, u32 fpexc, struct pt_regs *regs);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif /* __ASM_VFP_H */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -37,5 +37,9 @@ static inline int fsr_fs(unsigned int fsr)
 | 
			
		|||
 | 
			
		||||
void do_bad_area(unsigned long addr, unsigned int fsr, struct pt_regs *regs);
 | 
			
		||||
void early_abt_enable(void);
 | 
			
		||||
asmlinkage void do_DataAbort(unsigned long addr, unsigned int fsr,
 | 
			
		||||
			     struct pt_regs *regs);
 | 
			
		||||
asmlinkage void do_PrefetchAbort(unsigned long addr, unsigned int ifsr,
 | 
			
		||||
				 struct pt_regs *regs);
 | 
			
		||||
 | 
			
		||||
#endif	/* __ARCH_ARM_FAULT_H */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue