From: Paul Mackerras Date: Sat, 16 Apr 2005 22:24:17 +0000 (-0700) Subject: [PATCH] ppc32: fix single-stepping of emulated instructions X-Git-Tag: v2.6.12-rc3~216 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=6c26e03b2db4b66d79bfb774628c1fc9b458b943;p=~emulex%2Finfiniband.git [PATCH] ppc32: fix single-stepping of emulated instructions On ppc, we emulate instructions that cause alignment exceptions. If we are single-stepping an instruction and it causes an alignment exception, we will currently do the next instruction as well before taking the single-step exception. This patch fixes that, so we take the single-step exception after emulating the instruction. Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/arch/ppc/kernel/traps.c b/arch/ppc/kernel/traps.c index aec225b402a..002322a1f3c 100644 --- a/arch/ppc/kernel/traps.c +++ b/arch/ppc/kernel/traps.c @@ -679,6 +679,7 @@ void AlignmentException(struct pt_regs *regs) fixed = fix_alignment(regs); if (fixed == 1) { regs->nip += 4; /* skip over emulated instruction */ + emulate_single_step(regs); return; } if (fixed == -EFAULT) {