mirror of
https://github.com/torvalds/linux.git
synced 2024-11-16 00:52:01 +00:00
powerpc/kprobes: Emulate instructions on kprobe handler re-entry
On kprobe handler re-entry, try to emulate the instruction rather than single stepping always. Acked-by: Ananth N Mavinakayanahalli <ananth@linux.vnet.ibm.com> Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
parent
1cabd2f8f7
commit
22d8b3dec2
@ -277,6 +277,14 @@ int __kprobes kprobe_handler(struct pt_regs *regs)
|
|||||||
kprobes_inc_nmissed_count(p);
|
kprobes_inc_nmissed_count(p);
|
||||||
prepare_singlestep(p, regs);
|
prepare_singlestep(p, regs);
|
||||||
kcb->kprobe_status = KPROBE_REENTER;
|
kcb->kprobe_status = KPROBE_REENTER;
|
||||||
|
if (p->ainsn.boostable >= 0) {
|
||||||
|
ret = try_to_emulate(p, regs);
|
||||||
|
|
||||||
|
if (ret > 0) {
|
||||||
|
restore_previous_kprobe(kcb);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
return 1;
|
return 1;
|
||||||
} else {
|
} else {
|
||||||
if (*addr != BREAKPOINT_INSTRUCTION) {
|
if (*addr != BREAKPOINT_INSTRUCTION) {
|
||||||
|
Loading…
Reference in New Issue
Block a user