diff --git a/arch/powerpc/lib/sstep.c b/arch/powerpc/lib/sstep.c index 855457ed09b5..25a5436be6c6 100644 --- a/arch/powerpc/lib/sstep.c +++ b/arch/powerpc/lib/sstep.c @@ -2157,11 +2157,15 @@ int analyse_instr(struct instruction_op *op, const struct pt_regs *regs,case 23: /* lwzx */case 55: /* lwzux */ + if (u && (ra == 0 || ra == rd)) + return -1;
I guess you also need to split case 23 and 55? - Ravi