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