Commit 7c67f546 authored by Paolo Bonzini's avatar Paolo Bonzini
Browse files

KVM: SVM: do not allow VMRUN inside SMM



VMRUN is not supported inside the SMM handler and the behavior is undefined.
Just raise a #UD.

Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent acd05785
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -345,8 +345,12 @@ int nested_svm_vmrun(struct vcpu_svm *svm)
	struct kvm_host_map map;
	u64 vmcb_gpa;

	vmcb_gpa = svm->vmcb->save.rax;
	if (is_smm(&svm->vcpu)) {
		kvm_queue_exception(&svm->vcpu, UD_VECTOR);
		return 1;
	}

	vmcb_gpa = svm->vmcb->save.rax;
	ret = kvm_vcpu_map(&svm->vcpu, gpa_to_gfn(vmcb_gpa), &map);
	if (ret == -EINVAL) {
		kvm_inject_gp(&svm->vcpu, 0);