diff --git a/arch/arm64/kvm/hyp/nvhe/mem_protect.c b/arch/arm64/kvm/hyp/nvhe/mem_protect.c index 1d36fd64d42b..bec0ebf25e80 100644 --- a/arch/arm64/kvm/hyp/nvhe/mem_protect.c +++ b/arch/arm64/kvm/hyp/nvhe/mem_protect.c @@ -431,14 +431,14 @@ int __pkvm_guest_relinquish_to_host(struct pkvm_hyp_vcpu *vcpu, goto end; } - hyp_poison_page(phys, PAGE_SIZE); - psci_mem_protect_dec(1); - /* Zap the guest stage2 pte and return ownership to the host */ ret = kvm_pgtable_stage2_unmap(&vm->pgt, ipa, PAGE_SIZE); if (ret) goto end; + hyp_poison_page(phys, PAGE_SIZE); + psci_mem_protect_dec(1); + WARN_ON(host_stage2_set_owner_locked(phys, PAGE_SIZE, PKVM_ID_HOST)); end: guest_unlock_component(vm);