summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuergen Gross <jgross@suse.com>2024-12-18 09:02:28 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2024-12-19 18:07:23 +0100
commitfb8c76c7604a9db2e014744a316f22757f7db187 (patch)
tree49572cf69a671311648bc9b6b73a25f9ce5ecd12
parent4e54dc4bbc602133217de301d9f814f3e6d22eee (diff)
x86/static-call: fix 32-bit build
commit 349f0086ba8b2a169877d21ff15a4d9da3a60054 upstream. In 32-bit x86 builds CONFIG_STATIC_CALL_INLINE isn't set, leading to static_call_initialized not being available. Define it as "0" in that case. Reported-by: Stephen Rothwell <sfr@canb.auug.org.au> Fixes: 0ef8047b737d ("x86/static-call: provide a way to do very early static-call updates") Signed-off-by: Juergen Gross <jgross@suse.com> Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--include/linux/static_call.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/include/linux/static_call.h b/include/linux/static_call.h
index d17f61627cdf8..25663740b53e8 100644
--- a/include/linux/static_call.h
+++ b/include/linux/static_call.h
@@ -138,7 +138,6 @@
#ifdef CONFIG_HAVE_STATIC_CALL
#include <asm/static_call.h>
-extern bool static_call_initialized;
/*
* Either @site or @tramp can be NULL.
*/
@@ -161,6 +160,8 @@ extern void arch_static_call_transform(void *site, void *tramp, void *func, bool
#ifdef CONFIG_HAVE_STATIC_CALL_INLINE
+extern bool static_call_initialized;
+
extern int __init static_call_init(void);
struct static_call_mod {
@@ -216,6 +217,8 @@ extern long __static_call_return0(void);
#elif defined(CONFIG_HAVE_STATIC_CALL)
+#define static_call_initialized 0
+
static inline int static_call_init(void) { return 0; }
#define __DEFINE_STATIC_CALL(name, _func, _func_init) \
@@ -266,6 +269,8 @@ extern long __static_call_return0(void);
#else /* Generic implementation */
+#define static_call_initialized 0
+
static inline int static_call_init(void) { return 0; }
static inline long __static_call_return0(void)