[PATCH] ppc64 kprobes: remove spurious MSR_SE masking
Remove spurious MSR_SE reset during kprobe processing. single_step_exception() already does it for us. Reset it to be safe when executing the fault_handler. Signed-off-by: Ananth N Mavinakayanahalli <ananth@in.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
63224d1e8b
commit
f829fd23c8
@@ -177,8 +177,6 @@ static void resume_execution(struct kprobe *p, struct pt_regs *regs)
|
|||||||
ret = emulate_step(regs, p->ainsn.insn[0]);
|
ret = emulate_step(regs, p->ainsn.insn[0]);
|
||||||
if (ret == 0)
|
if (ret == 0)
|
||||||
regs->nip = (unsigned long)p->addr + 4;
|
regs->nip = (unsigned long)p->addr + 4;
|
||||||
|
|
||||||
regs->msr &= ~MSR_SE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int post_kprobe_handler(struct pt_regs *regs)
|
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)
|
|||||||
|
|
||||||
if (kprobe_status & KPROBE_HIT_SS) {
|
if (kprobe_status & KPROBE_HIT_SS) {
|
||||||
resume_execution(current_kprobe, regs);
|
resume_execution(current_kprobe, regs);
|
||||||
|
regs->msr &= ~MSR_SE;
|
||||||
regs->msr |= kprobe_saved_msr;
|
regs->msr |= kprobe_saved_msr;
|
||||||
|
|
||||||
unlock_kprobes();
|
unlock_kprobes();
|
||||||
|
Reference in New Issue
Block a user