aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile1
-rw-r--r--include/linux/jump_label.h21
2 files changed, 18 insertions, 4 deletions
diff --git a/Makefile b/Makefile
index 9fab639727c7..a2aa475543e9 100644
--- a/Makefile
+++ b/Makefile
@@ -779,6 +779,7 @@ KBUILD_ARFLAGS := $(call ar-option,D)
779# check for 'asm goto' 779# check for 'asm goto'
780ifeq ($(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-goto.sh $(CC)), y) 780ifeq ($(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-goto.sh $(CC)), y)
781 KBUILD_CFLAGS += -DCC_HAVE_ASM_GOTO 781 KBUILD_CFLAGS += -DCC_HAVE_ASM_GOTO
782 KBUILD_AFLAGS += -DCC_HAVE_ASM_GOTO
782endif 783endif
783 784
784include $(srctree)/scripts/Makefile.kasan 785include $(srctree)/scripts/Makefile.kasan
diff --git a/include/linux/jump_label.h b/include/linux/jump_label.h
index 98f923b6a0ea..f4de473f226b 100644
--- a/include/linux/jump_label.h
+++ b/include/linux/jump_label.h
@@ -45,6 +45,12 @@
45 * same as using STATIC_KEY_INIT_FALSE. 45 * same as using STATIC_KEY_INIT_FALSE.
46 */ 46 */
47 47
48#if defined(CC_HAVE_ASM_GOTO) && defined(CONFIG_JUMP_LABEL)
49# define HAVE_JUMP_LABEL
50#endif
51
52#ifndef __ASSEMBLY__
53
48#include <linux/types.h> 54#include <linux/types.h>
49#include <linux/compiler.h> 55#include <linux/compiler.h>
50#include <linux/bug.h> 56#include <linux/bug.h>
@@ -55,7 +61,7 @@ extern bool static_key_initialized;
55 "%s used before call to jump_label_init", \ 61 "%s used before call to jump_label_init", \
56 __func__) 62 __func__)
57 63
58#if defined(CC_HAVE_ASM_GOTO) && defined(CONFIG_JUMP_LABEL) 64#ifdef HAVE_JUMP_LABEL
59 65
60struct static_key { 66struct static_key {
61 atomic_t enabled; 67 atomic_t enabled;
@@ -66,13 +72,18 @@ struct static_key {
66#endif 72#endif
67}; 73};
68 74
69# include <asm/jump_label.h>
70# define HAVE_JUMP_LABEL
71#else 75#else
72struct static_key { 76struct static_key {
73 atomic_t enabled; 77 atomic_t enabled;
74}; 78};
75#endif /* CC_HAVE_ASM_GOTO && CONFIG_JUMP_LABEL */ 79#endif /* HAVE_JUMP_LABEL */
80#endif /* __ASSEMBLY__ */
81
82#ifdef HAVE_JUMP_LABEL
83#include <asm/jump_label.h>
84#endif
85
86#ifndef __ASSEMBLY__
76 87
77enum jump_label_type { 88enum jump_label_type {
78 JUMP_LABEL_DISABLE = 0, 89 JUMP_LABEL_DISABLE = 0,
@@ -203,3 +214,5 @@ static inline bool static_key_enabled(struct static_key *key)
203} 214}
204 215
205#endif /* _LINUX_JUMP_LABEL_H */ 216#endif /* _LINUX_JUMP_LABEL_H */
217
218#endif /* __ASSEMBLY__ */