]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - src/patches/suse-2.6.27.31/patches.arch/ppc-fix-ppc-insn-emulation_mr.patch
Reenabled linux-xen, added patches for Xen Kernel Version 2.6.27.31,
[people/pmueller/ipfire-2.x.git] / src / patches / suse-2.6.27.31 / patches.arch / ppc-fix-ppc-insn-emulation_mr.patch
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 (file)
index 0000000..6acb05a
--- /dev/null
@@ -0,0 +1,25 @@
+Subject: Don't emulate mr. instructions 
+From: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
+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 <ananth@in.ibm.com>
+Signed-off-by: Olaf Hering <olh@suse.de>
+
+---
+ 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 */