ARM: 8758/1: decompressor: restore r1 and r2 just before jumping to the kernel
[ Upstream commit f2ae9de019e4e2807d812ec4fe1df7c34788a0a0 ] The hypervisor setup before __enter_kernel destroys the value sotred in r1. The value needs to be restored just before the jump. Fixes: 6b52f7bdb888 ("ARM: hyp-stub: Use r1 for the soft-restart address") Signed-off-by: Łukasz Stelmach <l.stelmach@samsung.com> Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk> Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
c7d7e3f62d
commit
bb7a554ae7
@ -559,8 +559,6 @@ not_relocated: mov r0, #0
|
||||
bl decompress_kernel
|
||||
bl cache_clean_flush
|
||||
bl cache_off
|
||||
mov r1, r7 @ restore architecture number
|
||||
mov r2, r8 @ restore atags pointer
|
||||
|
||||
#ifdef CONFIG_ARM_VIRT_EXT
|
||||
mrs r0, spsr @ Get saved CPU boot mode
|
||||
@ -1363,6 +1361,8 @@ __hyp_reentry_vectors:
|
||||
|
||||
__enter_kernel:
|
||||
mov r0, #0 @ must be 0
|
||||
mov r1, r7 @ restore architecture number
|
||||
mov r2, r8 @ restore atags pointer
|
||||
ARM( mov pc, r4 ) @ call kernel
|
||||
M_CLASS( add r4, r4, #1 ) @ enter in Thumb mode for M class
|
||||
THUMB( bx r4 ) @ entry point is always ARM for A/R classes
|
||||
|
Loading…
x
Reference in New Issue
Block a user