On Mon, Mar 28, 2022 at 08:26:48AM +0200, Christophe Leroy wrote: > All three versions of klp_arch_set_pc() do exactly the same: they > call ftrace_instruction_pointer_set(). > > Call ftrace_instruction_pointer_set() directly and remove > klp_arch_set_pc(). > > As klp_arch_set_pc() was the only thing remaining in asm/livepatch.h > on x86 and s390, remove asm/livepatch.h > > livepatch.h remains on powerpc but its content is exclusively used > by powerpc specific code. The only remaining thing seems to be a klp_init_thread_info() for ppc64, but yeah.. Acked-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx> > diff --git a/kernel/livepatch/patch.c b/kernel/livepatch/patch.c > index c172bf92b576..4c4f5a776d80 100644 > --- a/kernel/livepatch/patch.c > +++ b/kernel/livepatch/patch.c > @@ -118,7 +118,7 @@ static void notrace klp_ftrace_handler(unsigned long ip, > if (func->nop) > goto unlock; > > - klp_arch_set_pc(fregs, (unsigned long)func->new_func); > + ftrace_instruction_pointer_set(fregs, (unsigned long)func->new_func); > > unlock: > ftrace_test_recursion_unlock(bit); So ptrace has instruction_pointer_set(), I'm not sure why we have yet another variant in the ftrace_ namespace. Perhaps also delete that?