linux/arch/arm64
Suzuki K Poulose 010c5bee66 KVM: arm64: nvhe: Save the SPE context early
commit b96b0c5de685df82019e16826a282d53d86d112c upstream

The nVHE KVM hyp drains and disables the SPE buffer, before
entering the guest, as the EL1&0 translation regime
is going to be loaded with that of the guest.

But this operation is performed way too late, because :
 - The owning translation regime of the SPE buffer
   is transferred to EL2. (MDCR_EL2_E2PB == 0)
 - The guest Stage1 is loaded.

Thus the flush could use the host EL1 virtual address,
but use the EL2 translations instead of host EL1, for writing
out any cached data.

Fix this by moving the SPE buffer handling early enough.
The restore path is doing the right thing.

Cc: stable@vger.kernel.org # v5.4-
Cc: Christoffer Dall <christoffer.dall@arm.com>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Will Deacon <will@kernel.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Alexandru Elisei <alexandru.elisei@arm.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Acked-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-03-20 10:39:46 +01:00
..
boot dts64: mt7622: fix slow sd card access 2021-03-04 10:26:45 +01:00
configs arm64/ARM: configs: Change CONFIG_REMOTEPROC from m to y 2019-09-30 11:48:00 -07:00
crypto crypto: arm64/sha - add missing module aliases 2021-03-04 10:26:44 +01:00
include KVM: arm64: nvhe: Save the SPE context early 2021-03-20 10:39:46 +01:00
kernel arm64: mm: use a 48-bit ID map when possible on 52-bit VA builds 2021-03-17 17:03:56 +01:00
kvm KVM: arm64: nvhe: Save the SPE context early 2021-03-20 10:39:46 +01:00
lib arm64: Change .weak to SYM_FUNC_START_WEAK_PI for arch/arm64/lib/mem*.S 2020-11-10 12:37:24 +01:00
mm arm64: mm: use a 48-bit ID map when possible on 52-bit VA builds 2021-03-17 17:03:56 +01:00
net arm64: bpf: Fix branch offset in JIT 2020-09-23 12:40:42 +02:00
xen xen/efi: have a common runtime setup function 2019-10-02 10:31:07 -04:00
Kbuild arm64: add arch/arm64/Kbuild 2019-08-21 18:47:15 +01:00
Kconfig arm64: Extend workaround for erratum 1024718 to all versions of Cortex-A55 2021-03-04 10:26:49 +01:00
Kconfig.debug treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Kconfig.platforms arm64: berlin: Select DW_APB_TIMER_OF 2020-11-05 11:43:36 +01:00
Makefile arm64: link with -z norelro regardless of CONFIG_RELOCATABLE 2020-11-01 12:01:02 +01:00