ARM: kprobes: Decode 16-bit Thumb hint instructions

For hints which may have observable effects, like SEV (send event), we
use kprobe_emulate_none which emulates the hint by executing the
original instruction.

For NOP we simulate the instruction using kprobe_simulate_nop, which
does nothing. As probes execute with interrupts disabled this is also
used for hints which may block for an indefinite time, like WFE (wait
for event).

Signed-off-by: Jon Medhurst <tixy@yxit.co.uk>
Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org>
This commit is contained in:
Jon Medhurst
2011-07-02 15:36:32 +01:00
committed by Tixy
parent 0d1a095aa1
commit 3f92dfed6a
3 changed files with 46 additions and 1 deletions

View File

@@ -95,6 +95,9 @@ static inline unsigned long it_advance(unsigned long cpsr)
return cpsr;
}
void __kprobes kprobe_simulate_nop(struct kprobe *p, struct pt_regs *regs);
void __kprobes kprobe_emulate_none(struct kprobe *p, struct pt_regs *regs);
/*
* Test if load/store instructions writeback the address register.
* if P (bit 24) == 0 or W (bit 21) == 1