Skip to content

Commit 890cb05

Browse files
asverdlinRussell King (Oracle)
authored andcommitted
ARM: 9078/1: Add warn suppress parameter to arm_gen_branch_link()
Will be used in the following patch. No functional change. Signed-off-by: Alexander Sverdlin <[email protected]> Signed-off-by: Russell King <[email protected]>
1 parent 4e27170 commit 890cb05

File tree

3 files changed

+15
-14
lines changed

3 files changed

+15
-14
lines changed

arch/arm/include/asm/insn.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,18 @@ arm_gen_nop(void)
1313
}
1414

1515
unsigned long
16-
__arm_gen_branch(unsigned long pc, unsigned long addr, bool link);
16+
__arm_gen_branch(unsigned long pc, unsigned long addr, bool link, bool warn);
1717

1818
static inline unsigned long
1919
arm_gen_branch(unsigned long pc, unsigned long addr)
2020
{
21-
return __arm_gen_branch(pc, addr, false);
21+
return __arm_gen_branch(pc, addr, false, true);
2222
}
2323

2424
static inline unsigned long
25-
arm_gen_branch_link(unsigned long pc, unsigned long addr)
25+
arm_gen_branch_link(unsigned long pc, unsigned long addr, bool warn)
2626
{
27-
return __arm_gen_branch(pc, addr, true);
27+
return __arm_gen_branch(pc, addr, true, warn);
2828
}
2929

3030
#endif

arch/arm/kernel/ftrace.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ int ftrace_arch_code_modify_post_process(void)
7070

7171
static unsigned long ftrace_call_replace(unsigned long pc, unsigned long addr)
7272
{
73-
return arm_gen_branch_link(pc, addr);
73+
return arm_gen_branch_link(pc, addr, true);
7474
}
7575

7676
static int ftrace_modify_code(unsigned long pc, unsigned long old,

arch/arm/kernel/insn.c

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,17 @@
33
#include <linux/kernel.h>
44
#include <asm/opcodes.h>
55

6-
static unsigned long
7-
__arm_gen_branch_thumb2(unsigned long pc, unsigned long addr, bool link)
6+
static unsigned long __arm_gen_branch_thumb2(unsigned long pc,
7+
unsigned long addr, bool link,
8+
bool warn)
89
{
910
unsigned long s, j1, j2, i1, i2, imm10, imm11;
1011
unsigned long first, second;
1112
long offset;
1213

1314
offset = (long)addr - (long)(pc + 4);
1415
if (offset < -16777216 || offset > 16777214) {
15-
WARN_ON_ONCE(1);
16+
WARN_ON_ONCE(warn);
1617
return 0;
1718
}
1819

@@ -33,8 +34,8 @@ __arm_gen_branch_thumb2(unsigned long pc, unsigned long addr, bool link)
3334
return __opcode_thumb32_compose(first, second);
3435
}
3536

36-
static unsigned long
37-
__arm_gen_branch_arm(unsigned long pc, unsigned long addr, bool link)
37+
static unsigned long __arm_gen_branch_arm(unsigned long pc, unsigned long addr,
38+
bool link, bool warn)
3839
{
3940
unsigned long opcode = 0xea000000;
4041
long offset;
@@ -44,7 +45,7 @@ __arm_gen_branch_arm(unsigned long pc, unsigned long addr, bool link)
4445

4546
offset = (long)addr - (long)(pc + 8);
4647
if (unlikely(offset < -33554432 || offset > 33554428)) {
47-
WARN_ON_ONCE(1);
48+
WARN_ON_ONCE(warn);
4849
return 0;
4950
}
5051

@@ -54,10 +55,10 @@ __arm_gen_branch_arm(unsigned long pc, unsigned long addr, bool link)
5455
}
5556

5657
unsigned long
57-
__arm_gen_branch(unsigned long pc, unsigned long addr, bool link)
58+
__arm_gen_branch(unsigned long pc, unsigned long addr, bool link, bool warn)
5859
{
5960
if (IS_ENABLED(CONFIG_THUMB2_KERNEL))
60-
return __arm_gen_branch_thumb2(pc, addr, link);
61+
return __arm_gen_branch_thumb2(pc, addr, link, warn);
6162
else
62-
return __arm_gen_branch_arm(pc, addr, link);
63+
return __arm_gen_branch_arm(pc, addr, link, warn);
6364
}

0 commit comments

Comments
 (0)