diff --git a/arch/arm64/kvm/hyp/nvhe/hyp-main.c b/arch/arm64/kvm/hyp/nvhe/hyp-main.c index 5931951eb374..15f053d6848c 100644 --- a/arch/arm64/kvm/hyp/nvhe/hyp-main.c +++ b/arch/arm64/kvm/hyp/nvhe/hyp-main.c @@ -457,7 +457,10 @@ static void handle___pkvm_host_map_guest(struct kvm_cpu_context *host_ctxt) if (ret) goto out; - ret = __pkvm_host_share_guest(pfn, gfn, hyp_vcpu); + if (pkvm_hyp_vcpu_is_protected(hyp_vcpu)) + ret = __pkvm_host_donate_guest(pfn, gfn, hyp_vcpu); + else + ret = __pkvm_host_share_guest(pfn, gfn, hyp_vcpu); out: cpu_reg(host_ctxt, 1) = ret; }