xref: /linux/arch/s390/include/asm/arch-stackprotector.h (revision 24f171c7e145f43b9f187578e89b0982ce87e54c)
1*f5730d44SHeiko Carstens /* SPDX-License-Identifier: GPL-2.0 */
2*f5730d44SHeiko Carstens 
3*f5730d44SHeiko Carstens #ifndef _ASM_S390_ARCH_STACKPROTECTOR_H
4*f5730d44SHeiko Carstens #define _ASM_S390_ARCH_STACKPROTECTOR_H
5*f5730d44SHeiko Carstens 
6*f5730d44SHeiko Carstens extern unsigned long __stack_chk_guard;
7*f5730d44SHeiko Carstens extern int stack_protector_debug;
8*f5730d44SHeiko Carstens 
9*f5730d44SHeiko Carstens void __stack_protector_apply_early(unsigned long kernel_start);
10*f5730d44SHeiko Carstens int __stack_protector_apply(unsigned long *start, unsigned long *end, unsigned long kernel_start);
11*f5730d44SHeiko Carstens 
12*f5730d44SHeiko Carstens static inline void stack_protector_apply_early(unsigned long kernel_start)
13*f5730d44SHeiko Carstens {
14*f5730d44SHeiko Carstens 	if (IS_ENABLED(CONFIG_STACKPROTECTOR))
15*f5730d44SHeiko Carstens 		__stack_protector_apply_early(kernel_start);
16*f5730d44SHeiko Carstens }
17*f5730d44SHeiko Carstens 
18*f5730d44SHeiko Carstens static inline int stack_protector_apply(unsigned long *start, unsigned long *end)
19*f5730d44SHeiko Carstens {
20*f5730d44SHeiko Carstens 	if (IS_ENABLED(CONFIG_STACKPROTECTOR))
21*f5730d44SHeiko Carstens 		return __stack_protector_apply(start, end, 0);
22*f5730d44SHeiko Carstens 	return 0;
23*f5730d44SHeiko Carstens }
24*f5730d44SHeiko Carstens 
25*f5730d44SHeiko Carstens #endif /* _ASM_S390_ARCH_STACKPROTECTOR_H */
26