All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] powerpc: Fix emulation of mcrf in emulate_step()
@ 2017-06-14 23:46 Anton Blanchard
  2017-06-14 23:46 ` [PATCH 2/2] powerpc: Fix emulation of mfocrf " Anton Blanchard
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Anton Blanchard @ 2017-06-14 23:46 UTC (permalink / raw)
  To: benh, paulus, mpe, ravi.bangoria, npiggin, naveen.n.rao; +Cc: linuxppc-dev

From: Anton Blanchard <anton@samba.org>

The mcrf emulation code was looking at the CR fields in the reverse
order. It also relied on reserved fields being zero which is somewhat
fragile, so fix that too.

Cc: stable@vger.kernel.org
Signed-off-by: Anton Blanchard <anton@samba.org>
---
 arch/powerpc/lib/sstep.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/lib/sstep.c b/arch/powerpc/lib/sstep.c
index 33117f8a0882..fb84f51b1f0b 100644
--- a/arch/powerpc/lib/sstep.c
+++ b/arch/powerpc/lib/sstep.c
@@ -683,8 +683,10 @@ int analyse_instr(struct instruction_op *op, struct pt_regs *regs,
 	case 19:
 		switch ((instr >> 1) & 0x3ff) {
 		case 0:		/* mcrf */
-			rd = (instr >> 21) & 0x1c;
-			ra = (instr >> 16) & 0x1c;
+			rd = 7 - ((instr >> 23) & 0x7);
+			ra = 7 - ((instr >> 18) & 0x7);
+			rd *= 4;
+			ra *= 4;
 			val = (regs->ccr >> ra) & 0xf;
 			regs->ccr = (regs->ccr & ~(0xfUL << rd)) | (val << rd);
 			goto instr_done;
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2017-07-13 12:46 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-06-14 23:46 [PATCH 1/2] powerpc: Fix emulation of mcrf in emulate_step() Anton Blanchard
2017-06-14 23:46 ` [PATCH 2/2] powerpc: Fix emulation of mfocrf " Anton Blanchard
2017-06-15 17:27   ` Naveen N. Rao
2017-07-13 12:46   ` [2/2] " Michael Ellerman
2017-06-15  4:18 ` [PATCH 1/2] powerpc: Fix emulation of mcrf " Segher Boessenkool
2017-06-15  6:47   ` Anton Blanchard
2017-06-15  8:41     ` Segher Boessenkool
2017-06-15 17:27 ` Naveen N. Rao
2017-07-13 12:46 ` [1/2] " Michael Ellerman

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.