/* Called after single-stepping. p->addr is the address of the instruction whose first byte has been replaced by the "breakpoint" instruction. To avoid the SMP problems that can occur when we temporarily put back the original opcode to single-step, we single-stepped a copy of the instruction. The address of this copy is p->ainsn.insn.  */
static void __kprobes resume_execution(struct kprobe *p, struct pt_regs *regs)
/* Called after single-stepping. p->addr is the address of the instruction whose first byte has been replaced by the "breakpoint" instruction. To avoid the SMP problems that can occur when we temporarily put back the original opcode to single-step, we single-stepped a copy of the instruction. The address of this copy is p->ainsn.insn.  */
static void __kprobes resume_execution(struct kprobe *p, struct pt_regs *regs)
{
	int ret;
	unsigned int insn = *p->ainsn.insn;
	regs->nip = (unsigned long)p->addr;
	ret = emulate_step(regs, insn);
	if (ret == 0)
		regs->nip = (unsigned long)p->addr + 4;
}