diff options
author | Pratyush Anand <panand@redhat.com> | 2015-02-13 04:06:21 +0000 |
---|---|---|
committer | Will Deacon <will.deacon@arm.com> | 2015-02-23 09:13:45 +0000 |
commit | d0d62230185e9d1a683bfa5cdfe5e520577f68d1 (patch) | |
tree | 051bcd54364207bcfe982963f13da787441fbf67 /arch | |
parent | c517d838eb7d07bbe9507871fab3931deccff539 (diff) | |
download | linux-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.c | 2 |
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) |