livepatch: Remove klp_arch_set_pc() and asm/livepatch.h
authorChristophe Leroy <christophe.leroy@csgroup.eu>
Mon, 28 Mar 2022 06:26:48 +0000 (08:26 +0200)
committerPetr Mladek <pmladek@suse.com>
Tue, 24 May 2022 06:46:37 +0000 (08:46 +0200)
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.

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Acked-by: Petr Mladek <pmladek@suse.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Miroslav Benes <mbenes@suse.cz>
Signed-off-by: Petr Mladek <pmladek@suse.com>
MAINTAINERS
arch/powerpc/include/asm/livepatch.h
arch/powerpc/kernel/irq.c
arch/powerpc/kernel/setup_64.c
arch/s390/include/asm/livepatch.h [deleted file]
arch/x86/include/asm/livepatch.h [deleted file]
include/linux/livepatch.h
kernel/livepatch/patch.c

index 741825c..589c614 100644 (file)
@@ -11338,8 +11338,6 @@ T:      git git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching.g
 F:     Documentation/ABI/testing/sysfs-kernel-livepatch
 F:     Documentation/livepatch/
 F:     arch/powerpc/include/asm/livepatch.h
-F:     arch/s390/include/asm/livepatch.h
-F:     arch/x86/include/asm/livepatch.h
 F:     include/linux/livepatch.h
 F:     kernel/livepatch/
 F:     lib/livepatch/
index 1c60094..d044a1f 100644 (file)
@@ -7,17 +7,9 @@
 #ifndef _ASM_POWERPC_LIVEPATCH_H
 #define _ASM_POWERPC_LIVEPATCH_H
 
-#include <linux/module.h>
-#include <linux/ftrace.h>
+#include <linux/sched.h>
 #include <linux/sched/task_stack.h>
 
-#ifdef CONFIG_LIVEPATCH
-static inline void klp_arch_set_pc(struct ftrace_regs *fregs, unsigned long ip)
-{
-       ftrace_instruction_pointer_set(fregs, ip);
-}
-#endif /* CONFIG_LIVEPATCH */
-
 #ifdef CONFIG_LIVEPATCH_64
 static inline void klp_init_thread_info(struct task_struct *p)
 {
index 752fb18..fb99e3f 100644 (file)
@@ -63,7 +63,6 @@
 #include <asm/machdep.h>
 #include <asm/udbg.h>
 #include <asm/smp.h>
-#include <asm/livepatch.h>
 #include <asm/hw_irq.h>
 #include <asm/softirq_stack.h>
 
index e547066..2c1e9a5 100644 (file)
@@ -59,7 +59,7 @@
 #include <asm/udbg.h>
 #include <asm/kexec.h>
 #include <asm/code-patching.h>
-#include <asm/livepatch.h>
+#include <asm/ftrace.h>
 #include <asm/opal.h>
 #include <asm/cputhreads.h>
 #include <asm/hw_irq.h>
diff --git a/arch/s390/include/asm/livepatch.h b/arch/s390/include/asm/livepatch.h
deleted file mode 100644 (file)
index 5209f22..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
-/*
- * livepatch.h - s390-specific Kernel Live Patching Core
- *
- *  Copyright (c) 2013-2015 SUSE
- *   Authors: Jiri Kosina
- *           Vojtech Pavlik
- *           Jiri Slaby
- */
-
-#ifndef ASM_LIVEPATCH_H
-#define ASM_LIVEPATCH_H
-
-#include <linux/ftrace.h>
-#include <asm/ptrace.h>
-
-static inline void klp_arch_set_pc(struct ftrace_regs *fregs, unsigned long ip)
-{
-       ftrace_instruction_pointer_set(fregs, ip);
-}
-
-#endif
diff --git a/arch/x86/include/asm/livepatch.h b/arch/x86/include/asm/livepatch.h
deleted file mode 100644 (file)
index 7c5cc66..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-or-later */
-/*
- * livepatch.h - x86-specific Kernel Live Patching Core
- *
- * Copyright (C) 2014 Seth Jennings <sjenning@redhat.com>
- * Copyright (C) 2014 SUSE
- */
-
-#ifndef _ASM_X86_LIVEPATCH_H
-#define _ASM_X86_LIVEPATCH_H
-
-#include <asm/setup.h>
-#include <linux/ftrace.h>
-
-static inline void klp_arch_set_pc(struct ftrace_regs *fregs, unsigned long ip)
-{
-       ftrace_instruction_pointer_set(fregs, ip);
-}
-
-#endif /* _ASM_X86_LIVEPATCH_H */
index 2614247..293e299 100644 (file)
@@ -16,8 +16,6 @@
 
 #if IS_ENABLED(CONFIG_LIVEPATCH)
 
-#include <asm/livepatch.h>
-
 /* task patch states */
 #define KLP_UNDEFINED  -1
 #define KLP_UNPATCHED   0
index c172bf9..4c4f5a7 100644 (file)
@@ -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);