On Fri, Nov 24, 2017 at 02:51:02PM +1100, Michael Ellerman wrote: > The code that cleans up the IAMR/AMOR before kexec'ing failed to > remember that when we're running as a guest AMOR is not writable, it's > hypervisor privileged. > > They symptom is that the kexec stops before entering purgatory and > nothing else is seen on the console. If you examine the state of the > system all threads will be in the 0x700 program check handler. > > Fix it by making the write to AMOR dependent on HV mode. > > Fixes: 1e2a516e89fc ("powerpc/kexec: Fix radix to hash kexec due to > IAMR/AMOR") > Cc: sta...@vger.kernel.org # v4.10+ > Reported-by: Yilin Zhang <yilzh...@redhat.com> > Debugged-by: David Gibson <da...@gibson.dropbear.id.au> > Signed-off-by: Michael Ellerman <m...@ellerman.id.au>
Reviewed-by: David Gibson <da...@gibson.dropbear.id.au> Tested-by: David Gibson <da...@gibson.dropbear.id.au> > --- > arch/powerpc/kernel/misc_64.S | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/arch/powerpc/kernel/misc_64.S b/arch/powerpc/kernel/misc_64.S > index 8ac0bd2bddb0..3280953a82cf 100644 > --- a/arch/powerpc/kernel/misc_64.S > +++ b/arch/powerpc/kernel/misc_64.S > @@ -623,7 +623,9 @@ BEGIN_FTR_SECTION > * NOTE, we rely on r0 being 0 from above. > */ > mtspr SPRN_IAMR,r0 > +BEGIN_FTR_SECTION_NESTED(42) > mtspr SPRN_AMOR,r0 > +END_FTR_SECTION_NESTED_IFSET(CPU_FTR_HVMODE, 42) > END_FTR_SECTION_IFSET(CPU_FTR_ARCH_300) > > /* save regs for local vars on new stack. -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature