mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-18 02:04:05 +08:00
powerpc/kexec: Reset secondary cpu endianness before kexec
If the target kernel does not inlcude the FIXUP_ENDIAN check, coming from a different-endian kernel will cause the target kernel to panic. All ppc64 kernels can handle starting in big-endian mode, so return to big-endian before branching into the target kernel. This mainly affects pseries as secondaries on powernv are returned to OPAL. Signed-off-by: Samuel Mendoza-Jonas <sam.mj@au1.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
parent
480798044e
commit
ffebf5f391
@ -475,9 +475,18 @@ _GLOBAL(kexec_wait)
|
||||
#ifdef CONFIG_KEXEC /* use no memory without kexec */
|
||||
lwz r4,0(r5)
|
||||
cmpwi 0,r4,0
|
||||
bnea 0x60
|
||||
beq 99b
|
||||
#ifdef CONFIG_PPC_BOOK3S_64
|
||||
li r10,0x60
|
||||
mfmsr r11
|
||||
clrrdi r11,r11,1 /* Clear MSR_LE */
|
||||
mtsrr0 r10
|
||||
mtsrr1 r11
|
||||
rfid
|
||||
#else
|
||||
ba 0x60
|
||||
#endif
|
||||
#endif
|
||||
b 99b
|
||||
|
||||
/* this can be in text because we won't change it until we are
|
||||
* running in real anyways
|
||||
|
Loading…
Reference in New Issue
Block a user