1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * arm64 KFENCE support. 4 * 5 * Copyright (C) 2020, Google LLC. 6 */ 7 8 #ifndef __ASM_KFENCE_H 9 #define __ASM_KFENCE_H 10 11 #include <asm/set_memory.h> 12 13 static inline bool arch_kfence_init_pool(void) { return true; } 14 15 static inline bool kfence_protect_page(unsigned long addr, bool protect) 16 { 17 set_memory_valid(addr, 1, !protect); 18 19 return true; 20 } 21 22 #ifdef CONFIG_KFENCE 23 extern bool kfence_early_init; 24 static inline bool arm64_kfence_can_set_direct_map(void) 25 { 26 return !kfence_early_init; 27 } 28 #else /* CONFIG_KFENCE */ 29 static inline bool arm64_kfence_can_set_direct_map(void) { return false; } 30 #endif /* CONFIG_KFENCE */ 31 32 #endif /* __ASM_KFENCE_H */ 33