Commit 2bc19dc3754fc066c43799659f0d848631c44cfe
Committed by
Paolo Bonzini
1 parent
a642fc3050
Exists in
ti-lsk-linux-4.1.y
and in
10 other branches
kvm: x86: don't kill guest on unknown exit reason
KVM_EXIT_UNKNOWN is a kvm bug, we don't really know whether it was triggered by a priveledged application. Let's not kill the guest: WARN and inject #UD instead. Cc: stable@vger.kernel.org Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Showing 2 changed files with 6 additions and 6 deletions Side-by-side Diff
arch/x86/kvm/svm.c
... | ... | @@ -3551,9 +3551,9 @@ |
3551 | 3551 | |
3552 | 3552 | if (exit_code >= ARRAY_SIZE(svm_exit_handlers) |
3553 | 3553 | || !svm_exit_handlers[exit_code]) { |
3554 | - kvm_run->exit_reason = KVM_EXIT_UNKNOWN; | |
3555 | - kvm_run->hw.hardware_exit_reason = exit_code; | |
3556 | - return 0; | |
3554 | + WARN_ONCE(1, "vmx: unexpected exit reason 0x%x\n", exit_code); | |
3555 | + kvm_queue_exception(vcpu, UD_VECTOR); | |
3556 | + return 1; | |
3557 | 3557 | } |
3558 | 3558 | |
3559 | 3559 | return svm_exit_handlers[exit_code](svm); |
arch/x86/kvm/vmx.c
... | ... | @@ -7174,10 +7174,10 @@ |
7174 | 7174 | && kvm_vmx_exit_handlers[exit_reason]) |
7175 | 7175 | return kvm_vmx_exit_handlers[exit_reason](vcpu); |
7176 | 7176 | else { |
7177 | - vcpu->run->exit_reason = KVM_EXIT_UNKNOWN; | |
7178 | - vcpu->run->hw.hardware_exit_reason = exit_reason; | |
7177 | + WARN_ONCE(1, "vmx: unexpected exit reason 0x%x\n", exit_reason); | |
7178 | + kvm_queue_exception(vcpu, UD_VECTOR); | |
7179 | + return 1; | |
7179 | 7180 | } |
7180 | - return 0; | |
7181 | 7181 | } |
7182 | 7182 | |
7183 | 7183 | static void update_cr8_intercept(struct kvm_vcpu *vcpu, int tpr, int irr) |