From 6b3ffa563eb7e79dc1e4b0d2e530b7582d17f97e Mon Sep 17 00:00:00 2001 From: Fuad Tabba Date: Tue, 8 Nov 2022 09:56:37 +0000 Subject: [PATCH] ANDROID: KVM: arm64: Flush the vcpu iflags for non-protected VMs The iflags are meant as input flags to the hypervisor, and will be used in future patches by calls to functions that sync debug and pmu state. Ensure that the hyp_vcpu copy is up-to-date with the host's on entry. Bug: 228011917 Signed-off-by: Fuad Tabba Change-Id: Id04d65ee084c3745ddc283ff5e30348511a4a1d2 --- arch/arm64/kvm/hyp/nvhe/hyp-main.c | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm64/kvm/hyp/nvhe/hyp-main.c b/arch/arm64/kvm/hyp/nvhe/hyp-main.c index 2c9ac32daf11..598590365a38 100644 --- a/arch/arm64/kvm/hyp/nvhe/hyp-main.c +++ b/arch/arm64/kvm/hyp/nvhe/hyp-main.c @@ -509,6 +509,7 @@ static void flush_hyp_vcpu(struct pkvm_hyp_vcpu *hyp_vcpu) if (vcpu_get_flag(host_vcpu, PKVM_HOST_STATE_DIRTY)) __flush_hyp_vcpu(hyp_vcpu); + hyp_vcpu->vcpu.arch.iflags = READ_ONCE(host_vcpu->arch.iflags); hyp_vcpu->vcpu.arch.hcr_el2 = HCR_GUEST_FLAGS & ~(HCR_RW | HCR_TWI | HCR_TWE); hyp_vcpu->vcpu.arch.hcr_el2 |= READ_ONCE(host_vcpu->arch.hcr_el2);