X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=src%2Fpatches%2Fsuse-2.6.27.31%2Fpatches.arch%2Fppc-fix-ppc-insn-emulation_mr.patch;fp=src%2Fpatches%2Fsuse-2.6.27.31%2Fpatches.arch%2Fppc-fix-ppc-insn-emulation_mr.patch;h=6acb05a3ee8f2282a5691d2ef0a7605cba6cc5a0;hb=2cb7cef9f877c88c82c959e2944ff02a12d068fa;hp=0000000000000000000000000000000000000000;hpb=836f873377e58243cc856caa0586954efff79185;p=people%2Fpmueller%2Fipfire-2.x.git diff --git a/src/patches/suse-2.6.27.31/patches.arch/ppc-fix-ppc-insn-emulation_mr.patch b/src/patches/suse-2.6.27.31/patches.arch/ppc-fix-ppc-insn-emulation_mr.patch new file mode 100644 index 0000000000..6acb05a3ee --- /dev/null +++ b/src/patches/suse-2.6.27.31/patches.arch/ppc-fix-ppc-insn-emulation_mr.patch @@ -0,0 +1,25 @@ +Subject: Don't emulate mr. instructions +From: Ananth N Mavinakayanahalli +References: 459387 - LTC49903 + +Currently emulate_step() emulates mr. instructions without updating cr0 +and this can be disastrous. Don't emulate mr. + +Signed-off-by: Ananth N Mavinakayanahalli +Signed-off-by: Olaf Hering + +--- + arch/powerpc/lib/sstep.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/arch/powerpc/lib/sstep.c ++++ b/arch/powerpc/lib/sstep.c +@@ -172,6 +172,8 @@ int __kprobes emulate_step(struct pt_reg + } + break; + case 0x378: /* orx */ ++ if (instr & 1) ++ break; + rs = (instr >> 21) & 0x1f; + rb = (instr >> 11) & 0x1f; + if (rs == rb) { /* mr */