1f9b5e46fSPeter Collingbourne /* SPDX-License-Identifier: GPL-2.0 */ 2f9b5e46fSPeter Collingbourne #ifndef _LINUX_KASAN_ENABLED_H 3f9b5e46fSPeter Collingbourne #define _LINUX_KASAN_ENABLED_H 4f9b5e46fSPeter Collingbourne 5*d8fd5a1eSJoey Gouly #include <linux/static_key.h> 6*d8fd5a1eSJoey Gouly 7f9b5e46fSPeter Collingbourne #ifdef CONFIG_KASAN_HW_TAGS 8f9b5e46fSPeter Collingbourne 9f9b5e46fSPeter Collingbourne DECLARE_STATIC_KEY_FALSE(kasan_flag_enabled); 10f9b5e46fSPeter Collingbourne kasan_enabled(void)11f9b5e46fSPeter Collingbournestatic __always_inline bool kasan_enabled(void) 12f9b5e46fSPeter Collingbourne { 13f9b5e46fSPeter Collingbourne return static_branch_likely(&kasan_flag_enabled); 14f9b5e46fSPeter Collingbourne } 15f9b5e46fSPeter Collingbourne kasan_hw_tags_enabled(void)16f9b5e46fSPeter Collingbournestatic inline bool kasan_hw_tags_enabled(void) 17f9b5e46fSPeter Collingbourne { 18f9b5e46fSPeter Collingbourne return kasan_enabled(); 19f9b5e46fSPeter Collingbourne } 20f9b5e46fSPeter Collingbourne 21f9b5e46fSPeter Collingbourne #else /* CONFIG_KASAN_HW_TAGS */ 22f9b5e46fSPeter Collingbourne kasan_enabled(void)23f9b5e46fSPeter Collingbournestatic inline bool kasan_enabled(void) 24f9b5e46fSPeter Collingbourne { 25f9b5e46fSPeter Collingbourne return IS_ENABLED(CONFIG_KASAN); 26f9b5e46fSPeter Collingbourne } 27f9b5e46fSPeter Collingbourne kasan_hw_tags_enabled(void)28f9b5e46fSPeter Collingbournestatic inline bool kasan_hw_tags_enabled(void) 29f9b5e46fSPeter Collingbourne { 30f9b5e46fSPeter Collingbourne return false; 31f9b5e46fSPeter Collingbourne } 32f9b5e46fSPeter Collingbourne 33f9b5e46fSPeter Collingbourne #endif /* CONFIG_KASAN_HW_TAGS */ 34f9b5e46fSPeter Collingbourne 35f9b5e46fSPeter Collingbourne #endif /* LINUX_KASAN_ENABLED_H */ 36