aboutsummaryrefslogtreecommitdiff
path: root/arch/arm/probes/decode.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/probes/decode.c')
-rw-r--r--arch/arm/probes/decode.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/arch/arm/probes/decode.c b/arch/arm/probes/decode.c
index c84053a81358..4464ff89f9a8 100644
--- a/arch/arm/probes/decode.c
+++ b/arch/arm/probes/decode.c
@@ -327,6 +327,7 @@ static bool __kprobes decode_regs(probes_opcode_t *pinsn, u32 regs, bool modify)
return true;
reject:
+ printk(KERN_ERR "decode_regs: reject\n");
return false;
}
@@ -455,8 +456,12 @@ probes_decode_insn(probes_opcode_t insn, struct arch_probes_insn *asi,
if (!matched && (insn & h->mask.bits) != h->value.bits)
continue;
- if (!decode_regs(&insn, regs, emulate))
+// printk(KERN_ERR "probes_decode_insn: matched instruction, type %x\n", type);
+
+ if (!decode_regs(&insn, regs, emulate)) {
+ printk(KERN_ERR "probes_decode_insn: decode regs failed\n");
return INSN_REJECTED;
+ }
switch (type) {
@@ -498,6 +503,9 @@ probes_decode_insn(probes_opcode_t insn, struct arch_probes_insn *asi,
if (err == INSN_REJECTED)
return INSN_REJECTED;
+// printk(KERN_ERR "decode-emulate: action %#x\n", action);
+
+ /* decoder and handler are unionized */
if (!emulate)
return actions[action].decoder(insn, asi, h);