]> Pileus Git - ~andy/linux/commitdiff
[PATCH] ppc32: fix single-stepping of emulated instructions
authorPaul Mackerras <paulus@samba.org>
Sat, 16 Apr 2005 22:24:17 +0000 (15:24 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Sat, 16 Apr 2005 22:24:17 +0000 (15:24 -0700)
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 <paulus@samba.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/ppc/kernel/traps.c

index aec225b402ae5f0558619908596bba3c2cf3943a..002322a1f3cedd02ab18a25fe135dfedeebc0bc6 100644 (file)
@@ -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) {