/* This function prepares to return from the post-single-step breakpoint trap.  */
static void __kprobes resume_execution(struct kprobe *p, struct pt_regs *regs, struct kprobe_ctlblk *kcb)
/* This function prepares to return from the post-single-step breakpoint trap.  */
static void __kprobes resume_execution(struct kprobe *p, struct pt_regs *regs, struct kprobe_ctlblk *kcb)
{
	u32 insn = p->ainsn.insn[0];
	regs->tnpc = relbranch_fixup(insn, p, regs);
	regs->tpc = kcb->kprobe_orig_tnpc;
	retpc_fixup(regs, insn, (unsigned long) p->addr);
	regs->tstate = ((regs->tstate & ~TSTATE_PIL) |
			kcb->kprobe_orig_tstate_pil);
}