static_call_inline: Provide trampoline address when updating sites

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>
Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com>
Link: https://patch.msgid.link/5efe0cffc38d6f69b1ec13988a99f1acff551abf.1733245362.git.christophe.leroy@csgroup.eu
This commit is contained in:
Christophe Leroy 2024-12-03 20:44:49 +01:00 committed by Madhavan Srinivasan
parent 65acbd1285
commit d856bc3ac7
2 changed files with 2 additions and 2 deletions

View File

@ -158,7 +158,7 @@ void arch_static_call_transform(void *site, void *tramp, void *func, bool tail)
{ {
mutex_lock(&text_mutex); mutex_lock(&text_mutex);
if (tramp) { if (tramp && !site) {
__static_call_validate(tramp, true, true); __static_call_validate(tramp, true, true);
__static_call_transform(tramp, __sc_insn(!func, true), func, false); __static_call_transform(tramp, __sc_insn(!func, true), func, false);
} }

View File

@ -206,7 +206,7 @@ void __static_call_update(struct static_call_key *key, void *tramp, void *func)
continue; continue;
} }
arch_static_call_transform(site_addr, NULL, func, arch_static_call_transform(site_addr, tramp, func,
static_call_is_tail(site)); static_call_is_tail(site));
} }
} }