From 20ad30bed789df1c75a4dd42e6c64309d0304d94 Mon Sep 17 00:00:00 2001 From: Juergen Gross Date: Wed, 18 Dec 2024 09:02:28 +0100 Subject: [PATCH] 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 Fixes: 0ef8047b737d ("x86/static-call: provide a way to do very early static-call updates") Signed-off-by: Juergen Gross Acked-by: Peter Zijlstra (Intel) Signed-off-by: Linus Torvalds Signed-off-by: Greg Kroah-Hartman --- include/linux/static_call.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/include/linux/static_call.h b/include/linux/static_call.h index 022842436880..c95c1b83e27a 100644 --- a/include/linux/static_call.h +++ b/include/linux/static_call.h @@ -100,7 +100,6 @@ #ifdef CONFIG_HAVE_STATIC_CALL #include -extern bool static_call_initialized; /* * Either @site or @tramp can be NULL. */ @@ -121,6 +120,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 { @@ -184,6 +185,8 @@ extern int static_call_text_reserved(void *start, void *end); #elif defined(CONFIG_HAVE_STATIC_CALL) +#define static_call_initialized 0 + static inline int static_call_init(void) { return 0; } struct static_call_key { @@ -235,6 +238,8 @@ static inline int static_call_text_reserved(void *start, void *end) #else /* Generic implementation */ +#define static_call_initialized 0 + static inline int static_call_init(void) { return 0; } struct static_call_key {