49 lines
1.5 KiB
Diff
49 lines
1.5 KiB
Diff
From: "Lennart Sorensen" <lsorense@csclub.uwaterloo.ca>
|
|
Subject: powerpc: Fix sstep compile on powerpcspe
|
|
Date: Thu, 5 May 2016 16:44:44 -0400
|
|
Forwarded: http://news.gmane.org/gmane.linux.ports.ppc.embedded/95502
|
|
Bug-Debian: https://bugs.debian.org/823526
|
|
|
|
Commit be96f63375a14ee8e690856ac77e579c75bd0bae introduced ldarx and stdcx
|
|
into the instructions in sstep.c, which are not accepted by the assembler
|
|
on powerpcspe, but does seem to be accepted by the normal powerpc assembler
|
|
even in 32 bit mode.
|
|
|
|
Wrap these two instructions in a __powerpc64__ check like it is everywhere
|
|
else in the file.
|
|
|
|
Fixes: be96f63375a1 ("powerpc: Split out instruction analysis part of emulate_step()")
|
|
Signed-off-by: Len Sorensen <lsorense@csclub.uwaterloo.ca>
|
|
---
|
|
arch/powerpc/lib/sstep.c | 4 ++++
|
|
1 file changed, 4 insertions(+)
|
|
|
|
diff --git a/arch/powerpc/lib/sstep.c b/arch/powerpc/lib/sstep.c
|
|
index dc885b3..6d34310 100644
|
|
--- a/arch/powerpc/lib/sstep.c
|
|
+++ b/arch/powerpc/lib/sstep.c
|
|
@@ -1818,9 +1818,11 @@ int __kprobes emulate_step(struct pt_regs *regs, unsigned int instr)
|
|
case 4:
|
|
__get_user_asmx(val, op.ea, err, "lwarx");
|
|
break;
|
|
+#ifdef __powerpc64__
|
|
case 8:
|
|
__get_user_asmx(val, op.ea, err, "ldarx");
|
|
break;
|
|
+#endif
|
|
default:
|
|
return 0;
|
|
}
|
|
@@ -1841,9 +1843,11 @@ int __kprobes emulate_step(struct pt_regs *regs, unsigned int instr)
|
|
case 4:
|
|
__put_user_asmx(op.val, op.ea, err, "stwcx.", cr);
|
|
break;
|
|
+#ifdef __powerpc64__
|
|
case 8:
|
|
__put_user_asmx(op.val, op.ea, err, "stdcx.", cr);
|
|
break;
|
|
+#endif
|
|
default:
|
|
return 0;
|
|
}
|