[PATCH] powerpc: Fix check for copy/paste instructions in alignment handler
Nicholas Piggin
npiggin at au1.ibm.com
Thu Oct 26 16:19:20 AEDT 2017
On Thu, 26 Oct 2017 09:41:32 +1100
Paul Mackerras <paulus at ozlabs.org> wrote:
> On Thu, Oct 26, 2017 at 01:22:37AM +1000, Nicholas Piggin wrote:
> > On Wed, 25 Oct 2017 18:16:53 +1100
> > Paul Mackerras <paulus at ozlabs.org> wrote:
> >
> > > Commit 07d2a628bc00 ("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.
> >
> > Thanks for fixing it. Any reason not to change the mask to 0xfc2006fe
> > to include the 'last' bit that is now mandatory?
>
> What does real hardware do if you execute the instruction without that
> bit set? Does it take the alignment interrupt, or does it take an
> illegal instruction interrupt (i.e. HEAI)? We need to catch all the
> variants that take an alignment interrupt. If P9 hardware takes a
> HEAI when that bit isn't set, then I'm fine with changing the mask.
Just tested. Copy without the bit results in an illegal instruction.
Even the valid paste variant causes a sigill because it's set to use
HEA to avoid the thread reconfig problem.
Thanks,
Nick
More information about the Linuxppc-dev
mailing list