aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/kernel/kprobes-decode.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/kernel/kprobes-decode.c')
-rw-r--r--arch/arm/kernel/kprobes-decode.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/arch/arm/kernel/kprobes-decode.c b/arch/arm/kernel/kprobes-decode.c
index baf053ea96eb..e5bc576ba3fb 100644
--- a/arch/arm/kernel/kprobes-decode.c
+++ b/arch/arm/kernel/kprobes-decode.c
@@ -1026,14 +1026,16 @@ space_cccc_000x(kprobe_opcode_t insn, struct arch_specific_insn *asi)
1026 /* cccc 0001 0xx0 xxxx xxxx xxxx xxxx xxx0 xxxx */ 1026 /* cccc 0001 0xx0 xxxx xxxx xxxx xxxx xxx0 xxxx */
1027 if ((insn & 0x0f900010) == 0x01000000) { 1027 if ((insn & 0x0f900010) == 0x01000000) {
1028 1028
1029 /* BXJ : cccc 0001 0010 xxxx xxxx xxxx 0010 xxxx */ 1029 /* BXJ : cccc 0001 0010 xxxx xxxx xxxx 0010 xxxx */
1030 /* MSR : cccc 0001 0x10 xxxx xxxx xxxx 0000 xxxx */ 1030 /* MSR : cccc 0001 0x10 xxxx xxxx xxxx 0000 xxxx */
1031 /* MRS spsr : cccc 0001 0100 xxxx xxxx xxxx 0000 xxxx */
1031 if ((insn & 0x0ff000f0) == 0x01200020 || 1032 if ((insn & 0x0ff000f0) == 0x01200020 ||
1032 (insn & 0x0fb000f0) == 0x01200000) 1033 (insn & 0x0fb000f0) == 0x01200000 ||
1034 (insn & 0x0ff000f0) == 0x01400000)
1033 return INSN_REJECTED; 1035 return INSN_REJECTED;
1034 1036
1035 /* MRS : cccc 0001 0x00 xxxx xxxx xxxx 0000 xxxx */ 1037 /* MRS cpsr : cccc 0001 0000 xxxx xxxx xxxx 0000 xxxx */
1036 if ((insn & 0x0fb00010) == 0x01000000) 1038 if ((insn & 0x0ff000f0) == 0x01000000)
1037 return prep_emulate_rd12(insn, asi); 1039 return prep_emulate_rd12(insn, asi);
1038 1040
1039 /* SMLALxy : cccc 0001 0100 xxxx xxxx xxxx 1xx0 xxxx */ 1041 /* SMLALxy : cccc 0001 0100 xxxx xxxx xxxx 1xx0 xxxx */