Skip to content

Commit 9f1ae75

Browse files
committed
arm64: Correct ftrace calls to aarch64_insn_gen_branch_imm()
The aarch64_insn_gen_branch_imm() function takes an enum as the last argument rather than a bool. It happens to work because AARCH64_INSN_BRANCH_LINK matches 'true' but better to use the actual type. Signed-off-by: Catalin Marinas <[email protected]>
1 parent a6583c7 commit 9f1ae75

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

arch/arm64/kernel/ftrace.c

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,8 @@ int ftrace_update_ftrace_func(ftrace_func_t func)
5858
u32 new;
5959

6060
pc = (unsigned long)&ftrace_call;
61-
new = aarch64_insn_gen_branch_imm(pc, (unsigned long)func, true);
61+
new = aarch64_insn_gen_branch_imm(pc, (unsigned long)func,
62+
AARCH64_INSN_BRANCH_LINK);
6263

6364
return ftrace_modify_code(pc, 0, new, false);
6465
}
@@ -72,7 +73,7 @@ int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
7273
u32 old, new;
7374

7475
old = aarch64_insn_gen_nop();
75-
new = aarch64_insn_gen_branch_imm(pc, addr, true);
76+
new = aarch64_insn_gen_branch_imm(pc, addr, AARCH64_INSN_BRANCH_LINK);
7677

7778
return ftrace_modify_code(pc, old, new, true);
7879
}
@@ -86,7 +87,7 @@ int ftrace_make_nop(struct module *mod, struct dyn_ftrace *rec,
8687
unsigned long pc = rec->ip;
8788
u32 old, new;
8889

89-
old = aarch64_insn_gen_branch_imm(pc, addr, true);
90+
old = aarch64_insn_gen_branch_imm(pc, addr, AARCH64_INSN_BRANCH_LINK);
9091
new = aarch64_insn_gen_nop();
9192

9293
return ftrace_modify_code(pc, old, new, true);
@@ -154,7 +155,8 @@ static int ftrace_modify_graph_caller(bool enable)
154155
u32 branch, nop;
155156

156157
branch = aarch64_insn_gen_branch_imm(pc,
157-
(unsigned long)ftrace_graph_caller, false);
158+
(unsigned long)ftrace_graph_caller,
159+
AARCH64_INSN_BRANCH_LINK);
158160
nop = aarch64_insn_gen_nop();
159161

160162
if (enable)

0 commit comments

Comments
 (0)