]> git.baikalelectronics.ru Git - kernel.git/commit
arm64: KVM: Prevent speculative S1 PTW when restoring vcpu context
authorMarc Zyngier <maz@kernel.org>
Tue, 30 Jul 2019 10:15:31 +0000 (11:15 +0100)
committerMarc Zyngier <maz@kernel.org>
Sat, 26 Oct 2019 09:44:49 +0000 (10:44 +0100)
commit8b65f6ea1eef2f578e6e38517c1d309246b8e5bf
tree0dea72dba7f8330cb9b9d40f2b33a9bd56278d1b
parentb4dde50571204a2bfd21d5522562e242ce8344d9
arm64: KVM: Prevent speculative S1 PTW when restoring vcpu context

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: James Morse <james.morse@arm.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
arch/arm64/kvm/hyp/switch.c
arch/arm64/kvm/hyp/sysreg-sr.c