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 741825cff43c1ae86955996904ad51d4205cf20a..589c61412e3bb1a04698ea5cc858c4c91113074e 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 1c60094ea0cd2313a165e48d4b0d54e98eb386b8..d044a1fd4f442f57693d40f743d5844c611d0d4c 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 752fb182eacb43e44447d13f785744e4b0ebae14..fb99e3fa034d60185354eda81618ba448f0d3506 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 e547066a06aa6860bf39f5404acdef820af4632f..2c1e9a5ac6ca3f289e96d0241ded2d0f3f4abbe9 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 2614247a9781fff2bcaa8743346d6758f31dec16..293e29960c6ebc0142a7442e4700b565e508658d 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 c172bf92b576bc0e777402d995b7157c7c6d0914..4c4f5a776d80807a25175f768074ca00ca6fa9d2 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);