diff options
author | Steven Whitehouse <swhiteho@redhat.com> | 2006-05-12 16:48:52 +0200 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2006-05-12 16:48:52 +0200 |
commit | 7d63b54a65ce902f9aaa8efe8192aa3b983264d4 (patch) | |
tree | 250a77bebe92cbd6edac70a649866044295876db /arch/powerpc/kernel/kprobes.c | |
parent | [GFS2] Readpages support (diff) | |
parent | Linux v2.6.17-rc4 (diff) | |
download | linux-7d63b54a65ce902f9aaa8efe8192aa3b983264d4.tar.xz linux-7d63b54a65ce902f9aaa8efe8192aa3b983264d4.zip |
Merge branch 'master'
Diffstat (limited to 'arch/powerpc/kernel/kprobes.c')
-rw-r--r-- | arch/powerpc/kernel/kprobes.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/arch/powerpc/kernel/kprobes.c b/arch/powerpc/kernel/kprobes.c index 856ef1a832b9..f78866367b70 100644 --- a/arch/powerpc/kernel/kprobes.c +++ b/arch/powerpc/kernel/kprobes.c @@ -90,15 +90,15 @@ void __kprobes arch_remove_kprobe(struct kprobe *p) static void __kprobes prepare_singlestep(struct kprobe *p, struct pt_regs *regs) { - kprobe_opcode_t insn = *p->ainsn.insn; - regs->msr |= MSR_SE; - /* single step inline if it is a trap variant */ - if (is_trap(insn)) - regs->nip = (unsigned long)p->addr; - else - regs->nip = (unsigned long)p->ainsn.insn; + /* + * On powerpc we should single step on the original + * instruction even if the probed insn is a trap + * variant as values in regs could play a part in + * if the trap is taken or not + */ + regs->nip = (unsigned long)p->ainsn.insn; } static void __kprobes save_previous_kprobe(struct kprobe_ctlblk *kcb) |