|
|
@@ -45,6 +45,12 @@
|
|
|
* same as using STATIC_KEY_INIT_FALSE.
|
|
|
*/
|
|
|
|
|
|
+#if defined(CC_HAVE_ASM_GOTO) && defined(CONFIG_JUMP_LABEL)
|
|
|
+# define HAVE_JUMP_LABEL
|
|
|
+#endif
|
|
|
+
|
|
|
+#ifndef __ASSEMBLY__
|
|
|
+
|
|
|
#include <linux/types.h>
|
|
|
#include <linux/compiler.h>
|
|
|
#include <linux/bug.h>
|
|
|
@@ -55,7 +61,7 @@ extern bool static_key_initialized;
|
|
|
"%s used before call to jump_label_init", \
|
|
|
__func__)
|
|
|
|
|
|
-#if defined(CC_HAVE_ASM_GOTO) && defined(CONFIG_JUMP_LABEL)
|
|
|
+#ifdef HAVE_JUMP_LABEL
|
|
|
|
|
|
struct static_key {
|
|
|
atomic_t enabled;
|
|
|
@@ -66,13 +72,18 @@ struct static_key {
|
|
|
#endif
|
|
|
};
|
|
|
|
|
|
-# include <asm/jump_label.h>
|
|
|
-# define HAVE_JUMP_LABEL
|
|
|
#else
|
|
|
struct static_key {
|
|
|
atomic_t enabled;
|
|
|
};
|
|
|
-#endif /* CC_HAVE_ASM_GOTO && CONFIG_JUMP_LABEL */
|
|
|
+#endif /* HAVE_JUMP_LABEL */
|
|
|
+#endif /* __ASSEMBLY__ */
|
|
|
+
|
|
|
+#ifdef HAVE_JUMP_LABEL
|
|
|
+#include <asm/jump_label.h>
|
|
|
+#endif
|
|
|
+
|
|
|
+#ifndef __ASSEMBLY__
|
|
|
|
|
|
enum jump_label_type {
|
|
|
JUMP_LABEL_DISABLE = 0,
|
|
|
@@ -203,3 +214,5 @@ static inline bool static_key_enabled(struct static_key *key)
|
|
|
}
|
|
|
|
|
|
#endif /* _LINUX_JUMP_LABEL_H */
|
|
|
+
|
|
|
+#endif /* __ASSEMBLY__ */
|