summaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/svm.c
diff options
context:
space:
mode:
authorJoerg Roedel2010-04-22 12:33:10 +0200
committerAvi Kivity2010-05-17 11:19:21 +0200
commit228070b1b31abc16c331b57bf965101c6eb1d167 (patch)
tree733389c8b0716c1c9cbe3eadc3cc565cf660f27d /arch/x86/kvm/svm.c
parentKVM: SVM: Sync cr0 and cr3 to kvm state before nested handling (diff)
downloadkernel-qcow2-linux-228070b1b31abc16c331b57bf965101c6eb1d167.tar.gz
kernel-qcow2-linux-228070b1b31abc16c331b57bf965101c6eb1d167.tar.xz
kernel-qcow2-linux-228070b1b31abc16c331b57bf965101c6eb1d167.zip
KVM: SVM: Propagate nested entry failure into guest hypervisor
This patch implements propagation of a failes guest vmrun back into the guest instead of killing the whole guest. Signed-off-by: Joerg Roedel <joerg.roedel@amd.com> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/x86/kvm/svm.c')
-rw-r--r--arch/x86/kvm/svm.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
index 5ad9d802bd16..b10d1630c203 100644
--- a/arch/x86/kvm/svm.c
+++ b/arch/x86/kvm/svm.c
@@ -1715,6 +1715,10 @@ static int nested_svm_intercept(struct vcpu_svm *svm)
vmexit = NESTED_EXIT_DONE;
break;
}
+ case SVM_EXIT_ERR: {
+ vmexit = NESTED_EXIT_DONE;
+ break;
+ }
default: {
u64 exit_bits = 1ULL << (exit_code - SVM_EXIT_INTR);
if (svm->nested.intercept & exit_bits)