kfence.h 649 B

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