From 1db9bff2b8ce9d2a8893f78d35e0d7f2a51cc4ad Mon Sep 17 00:00:00 2001 From: Ananth N Mavinakayanahalli Date: Thu, 27 May 2010 19:19:20 +0000 Subject: [PATCH] --- yaml --- r: 199746 b: refs/heads/master c: db97bc7f9997fef41b24c91f61c2f776d32d7ce3 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/powerpc/kernel/kprobes.c | 14 ++------------ 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/[refs] b/[refs] index 4a5bdc2d9eef..688d22b0c65f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 83aea945c21c646184a494a32ad5524248b60226 +refs/heads/master: db97bc7f9997fef41b24c91f61c2f776d32d7ce3 diff --git a/trunk/arch/powerpc/kernel/kprobes.c b/trunk/arch/powerpc/kernel/kprobes.c index c533525ca56a..bc47352deb1f 100644 --- a/trunk/arch/powerpc/kernel/kprobes.c +++ b/trunk/arch/powerpc/kernel/kprobes.c @@ -378,17 +378,6 @@ static int __kprobes trampoline_probe_handler(struct kprobe *p, * 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; -} - static int __kprobes post_kprobe_handler(struct pt_regs *regs) { struct kprobe *cur = kprobe_running(); @@ -406,7 +395,8 @@ static int __kprobes post_kprobe_handler(struct pt_regs *regs) cur->post_handler(cur, regs, 0); } - resume_execution(cur, regs); + /* Adjust nip to after the single-stepped instruction */ + regs->nip = (unsigned long)cur->addr + 4; regs->msr |= kcb->kprobe_saved_msr; /*Restore back the original saved kprobes variables and continue. */