Message ID | b1441fba3cae8dc7a4def90cbcfd7e62100ff392.1662032631.git.christophe.leroy@csgroup.eu (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
Series | Implement inline static calls on PPC32 - v3 | expand |
diff --git a/arch/x86/kernel/static_call.c b/arch/x86/kernel/static_call.c index aaaba85d6d7f..1c0072272214 100644 --- a/arch/x86/kernel/static_call.c +++ b/arch/x86/kernel/static_call.c @@ -113,7 +113,7 @@ void arch_static_call_transform(void *site, void *tramp, void *func, bool tail) { mutex_lock(&text_mutex); - if (tramp) { + if (tramp && !site) { __static_call_validate(tramp, true, true); __static_call_transform(tramp, __sc_insn(!func, true), func, false); } diff --git a/kernel/static_call_inline.c b/kernel/static_call_inline.c index dc5665b62814..b5de9d92fa4e 100644 --- a/kernel/static_call_inline.c +++ b/kernel/static_call_inline.c @@ -195,7 +195,7 @@ void __static_call_update(struct static_call_key *key, void *tramp, void *func) continue; } - arch_static_call_transform(site_addr, NULL, func, + arch_static_call_transform(site_addr, tramp, func, static_call_is_tail(site)); } }
In preparation of support of inline static calls on powerpc, provide trampoline address when updating sites, so that when the destination function is too far for a direct function call, the call site is patched with a call to the trampoline. Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> --- arch/x86/kernel/static_call.c | 2 +- kernel/static_call_inline.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)