[PATCH] powerpc: Fix single step emulation of 32bit overflowed branches
Michael Neuling
mikey at neuling.org
Mon May 6 21:32:40 EST 2013
Check truncate_if_32bit() on final write to nip.
Signed-off-by: Michael Neuling <mikey at neuling.org>
diff --git a/arch/powerpc/lib/sstep.c b/arch/powerpc/lib/sstep.c
index e15c521..99c7fc1 100644
--- a/arch/powerpc/lib/sstep.c
+++ b/arch/powerpc/lib/sstep.c
@@ -580,7 +580,7 @@ int __kprobes emulate_step(struct pt_regs *regs, unsigned int instr)
if (instr & 1)
regs->link = regs->nip;
if (branch_taken(instr, regs))
- regs->nip = imm;
+ regs->nip = truncate_if_32bit(regs->msr, imm);
return 1;
#ifdef CONFIG_PPC64
case 17: /* sc */
More information about the Linuxppc-dev
mailing list