livepatch: Remove klp_arch_set_pc() and asm/livepatch.h
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>
This commit is contained in:
parent
d111c9f034
commit
5d7c854593
@ -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/
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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>
|
||||
|
@ -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
|
@ -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 */
|
@ -16,8 +16,6 @@
|
||||
|
||||
#if IS_ENABLED(CONFIG_LIVEPATCH)
|
||||
|
||||
#include <asm/livepatch.h>
|
||||
|
||||
/* task patch states */
|
||||
#define KLP_UNDEFINED -1
|
||||
#define KLP_UNPATCHED 0
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user