summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorPratyush Anand <panand@redhat.com>2015-02-13 04:06:21 +0000
committerWill Deacon <will.deacon@arm.com>2015-02-23 09:13:45 +0000
commitd0d62230185e9d1a683bfa5cdfe5e520577f68d1 (patch)
tree051bcd54364207bcfe982963f13da787441fbf67 /arch
parentc517d838eb7d07bbe9507871fab3931deccff539 (diff)
downloadlinux-d0d62230185e9d1a683bfa5cdfe5e520577f68d1.tar.gz
linux-d0d62230185e9d1a683bfa5cdfe5e520577f68d1.tar.bz2
linux-d0d62230185e9d1a683bfa5cdfe5e520577f68d1.zip
arm64: ftrace: fix ftrace_modify_graph_caller for branch replace
ftrace_enable_ftrace_graph_caller and ftrace_disable_ftrace_graph_caller should replace B(jmp) instruction and not BL(call) instruction. Commit 9f1ae7596aad("arm64: Correct ftrace calls to aarch64_insn_gen_branch_imm()") had a typo and used AARCH64_INSN_BRANCH_LINK instead of AARCH64_INSN_BRANCH_NOLINK. Either instruction will work, as the link register is saved/restored across the branch but this better matches the intention of the code. Signed-off-by: Pratyush Anand <panand@redhat.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm64/kernel/ftrace.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm64/kernel/ftrace.c b/arch/arm64/kernel/ftrace.c
index cf8556ae09d0..c851be795080 100644
--- a/arch/arm64/kernel/ftrace.c
+++ b/arch/arm64/kernel/ftrace.c
@@ -156,7 +156,7 @@ static int ftrace_modify_graph_caller(bool enable)
branch = aarch64_insn_gen_branch_imm(pc,
(unsigned long)ftrace_graph_caller,
- AARCH64_INSN_BRANCH_LINK);
+ AARCH64_INSN_BRANCH_NOLINK);
nop = aarch64_insn_gen_nop();
if (enable)