diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/ppc64/kernel/kprobes.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/arch/ppc64/kernel/kprobes.c b/arch/ppc64/kernel/kprobes.c index 8f3317244311..e950a2058a19 100644 --- a/arch/ppc64/kernel/kprobes.c +++ b/arch/ppc64/kernel/kprobes.c | |||
@@ -177,8 +177,6 @@ static void resume_execution(struct kprobe *p, struct pt_regs *regs) | |||
177 | ret = emulate_step(regs, p->ainsn.insn[0]); | 177 | ret = emulate_step(regs, p->ainsn.insn[0]); |
178 | if (ret == 0) | 178 | if (ret == 0) |
179 | regs->nip = (unsigned long)p->addr + 4; | 179 | regs->nip = (unsigned long)p->addr + 4; |
180 | |||
181 | regs->msr &= ~MSR_SE; | ||
182 | } | 180 | } |
183 | 181 | ||
184 | static inline int post_kprobe_handler(struct pt_regs *regs) | 182 | static inline int post_kprobe_handler(struct pt_regs *regs) |
@@ -215,6 +213,7 @@ static inline int kprobe_fault_handler(struct pt_regs *regs, int trapnr) | |||
215 | 213 | ||
216 | if (kprobe_status & KPROBE_HIT_SS) { | 214 | if (kprobe_status & KPROBE_HIT_SS) { |
217 | resume_execution(current_kprobe, regs); | 215 | resume_execution(current_kprobe, regs); |
216 | regs->msr &= ~MSR_SE; | ||
218 | regs->msr |= kprobe_saved_msr; | 217 | regs->msr |= kprobe_saved_msr; |
219 | 218 | ||
220 | unlock_kprobes(); | 219 | unlock_kprobes(); |