• Marc Zyngier's avatar
    arm64: KVM: Prevent speculative S1 PTW when restoring vcpu context · bd227553
    Marc Zyngier authored
    When handling erratum 1319367, we must ensure that the page table
    walker cannot parse the S1 page tables while the guest is in an
    inconsistent state. This is done as follows:
    
    On guest entry:
    - TCR_EL1.EPD{0,1} are set, ensuring that no PTW can occur
    - all system registers are restored, except for TCR_EL1 and SCTLR_EL1
    - stage-2 is restored
    - SCTLR_EL1 and TCR_EL1 are restored
    
    On guest exit:
    - SCTLR_EL1.M and TCR_EL1.EPD{0,1} are set, ensuring that no PTW can occur
    - stage-2 is disabled
    - All host system registers are restored
    Reviewed-by: default avatarJames Morse <james.morse@arm.com>
    Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
    bd227553
switch.c 19.3 KB