Commit 5e66f723 authored by Will Deacon's avatar Will Deacon Committed by Marc Zyngier
Browse files

KVM: arm64: Don't leak stage-2 page-table if VM fails to init under pKVM



If pkvm_init_host_vm() fails, we should free the stage-2 page-table
previously allocated by kvm_init_stage2_mmu().

Cc: Fuad Tabba <tabba@google.com>
Reviewed-by: default avatarFuad Tabba <tabba@google.com>
Tested-by: default avatarFuad Tabba <tabba@google.com>
Tested-by: default avatarMostafa Saleh <smostafa@google.com>
Fixes: 07aeb707 ("KVM: arm64: Reserve pKVM handle during pkvm_init_host_vm()")
Signed-off-by: default avatarWill Deacon <will@kernel.org>
Link: https://patch.msgid.link/20260330144841.26181-3-will@kernel.org


Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
parent 660b208e
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -236,7 +236,7 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
		 */
		ret = pkvm_init_host_vm(kvm);
		if (ret)
			goto err_free_cpumask;
			goto err_uninit_mmu;
	}

	kvm_vgic_early_init(kvm);
@@ -252,6 +252,8 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)

	return 0;

err_uninit_mmu:
	kvm_uninit_stage2_mmu(kvm);
err_free_cpumask:
	free_cpumask_var(kvm->arch.supported_cpus);
err_unshare_kvm: