From: Keir Fraser <keirf@xxxxxxxxxx> If the mapping is determined to be not present in an earlier walk, attempting the unmap is pointless. Signed-off-by: Keir Fraser <keirf@xxxxxxxxxx> Signed-off-by: Fuad Tabba <tabba@xxxxxxxxxx> --- arch/arm64/kvm/hyp/nvhe/mem_protect.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/kvm/hyp/nvhe/mem_protect.c b/arch/arm64/kvm/hyp/nvhe/mem_protect.c index 405d6e3e17e0..4889f0510c7e 100644 --- a/arch/arm64/kvm/hyp/nvhe/mem_protect.c +++ b/arch/arm64/kvm/hyp/nvhe/mem_protect.c @@ -378,7 +378,7 @@ int __pkvm_guest_relinquish_to_host(struct pkvm_hyp_vcpu *vcpu, ret = kvm_pgtable_walk(&vm->pgt, ipa, PAGE_SIZE, &walker); /* Zap the guest stage2 pte. */ - if (!ret) + if (!ret && data.pa) kvm_pgtable_stage2_unmap(&vm->pgt, ipa, PAGE_SIZE); guest_unlock_component(vm); -- 2.44.0.rc1.240.g4c46232300-goog