Commit 158f1969 authored by Paul Mackerras's avatar Paul Mackerras Committed by Michael Ellerman

powerpc: Fix check for copy/paste instructions in alignment handler

Commit 07d2a628 ("powerpc/64s: Avoid cpabort in context switch
when possible", 2017-06-09) changed the definition of PPC_INST_COPY
and in so doing inadvertently broke the check for copy/paste
instructions in the alignment fault handler. The check currently
matches no instructions.

This fixes it by ANDing both sides of the comparison with the mask.

Fixes: 07d2a628 ("powerpc/64s: Avoid cpabort in context switch when possible")
Cc: stable@vger.kernel.org # v4.13+
Reported-by: default avatarMarkus Trippelsdorf <markus@trippelsdorf.de>
Signed-off-by: default avatarPaul Mackerras <paulus@ozlabs.org>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent 0b167f11
...@@ -332,7 +332,7 @@ int fix_alignment(struct pt_regs *regs) ...@@ -332,7 +332,7 @@ int fix_alignment(struct pt_regs *regs)
* when pasting to a co-processor. Furthermore, paste_last is the * when pasting to a co-processor. Furthermore, paste_last is the
* synchronisation point for preceding copy/paste sequences. * synchronisation point for preceding copy/paste sequences.
*/ */
if ((instr & 0xfc0006fe) == PPC_INST_COPY) if ((instr & 0xfc0006fe) == (PPC_INST_COPY & 0xfc0006fe))
return -EIO; return -EIO;
r = analyse_instr(&op, regs, instr); r = analyse_instr(&op, regs, instr);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment