Patch "efi/arm: set HSCTLR Thumb2 bit correctly for HVC calls from HYP" has been added to the 5.9-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    efi/arm: set HSCTLR Thumb2 bit correctly for HVC calls from HYP

to the 5.9-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     efi-arm-set-hsctlr-thumb2-bit-correctly-for-hvc-call.patch
and it can be found in the queue-5.9 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 8c69b01dfc92bd40ca837c340351f5e91900662c
Author: Ard Biesheuvel <ardb@xxxxxxxxxx>
Date:   Sat Oct 3 17:28:27 2020 +0200

    efi/arm: set HSCTLR Thumb2 bit correctly for HVC calls from HYP
    
    [ Upstream commit fbc81ec5b85d43a4b22e49ec0e643fa7dec2ea40 ]
    
    Commit
    
      db227c19e68db353 ("ARM: 8985/1: efi/decompressor: deal with HYP mode boot gracefully")
    
    updated the EFI entry code to permit firmware to invoke the EFI stub
    loader in HYP mode, with the MMU either enabled or disabled, neither
    of which is permitted by the EFI spec, but which does happen in the
    field.
    
    In the MMU on case, we remain in HYP mode as configured by the firmware,
    and rely on the fact that any HVC instruction issued in this mode will
    be dispatched via the SVC slot in the HYP vector table. However, this
    slot will point to a Thumb2 symbol if the kernel is built in Thumb2
    mode, and so we have to configure HSCTLR to ensure that the exception
    handlers are invoked in Thumb2 mode as well.
    
    Fixes: db227c19e68db353 ("ARM: 8985/1: efi/decompressor: deal with HYP mode boot gracefully")
    Signed-off-by: Ard Biesheuvel <ardb@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index 434a16982e344..19499d636bc88 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -1476,6 +1476,9 @@ ENTRY(efi_enter_kernel)
 		@ issued from HYP mode take us to the correct handler code. We
 		@ will disable the MMU before jumping to the kernel proper.
 		@
+ ARM(		bic	r1, r1, #(1 << 30)	) @ clear HSCTLR.TE
+ THUMB(		orr	r1, r1, #(1 << 30)	) @ set HSCTLR.TE
+		mcr	p15, 4, r1, c1, c0, 0
 		adr	r0, __hyp_reentry_vectors
 		mcr	p15, 4, r0, c12, c0, 0	@ set HYP vector base (HVBAR)
 		isb



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux