aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/include/asm/kvm_host.h
diff options
context:
space:
mode:
authorJan Kiszka <jan.kiszka@siemens.com>2013-04-28 04:50:52 -0400
committerGleb Natapov <gleb@redhat.com>2013-04-28 05:44:18 -0400
commit730dca42c1d363c939da18c1499c7327c66e2b37 (patch)
treef94998cccc58814642c4160da1bb75181af6ba68 /arch/x86/include/asm/kvm_host.h
parent6614c7d042eb1096d4eba253b4952bec349f8593 (diff)
KVM: x86: Rework request for immediate exit
The VMX implementation of enable_irq_window raised KVM_REQ_IMMEDIATE_EXIT after we checked it in vcpu_enter_guest. This caused infinite loops on vmentry. Fix it by letting enable_irq_window signal the need for an immediate exit via its return value and drop KVM_REQ_IMMEDIATE_EXIT. This issue only affects nested VMX scenarios. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Gleb Natapov <gleb@redhat.com>
Diffstat (limited to 'arch/x86/include/asm/kvm_host.h')
-rw-r--r--arch/x86/include/asm/kvm_host.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
index 18635ae42a8e..111b4a0c3907 100644
--- a/arch/x86/include/asm/kvm_host.h
+++ b/arch/x86/include/asm/kvm_host.h
@@ -694,7 +694,7 @@ struct kvm_x86_ops {
694 bool (*get_nmi_mask)(struct kvm_vcpu *vcpu); 694 bool (*get_nmi_mask)(struct kvm_vcpu *vcpu);
695 void (*set_nmi_mask)(struct kvm_vcpu *vcpu, bool masked); 695 void (*set_nmi_mask)(struct kvm_vcpu *vcpu, bool masked);
696 void (*enable_nmi_window)(struct kvm_vcpu *vcpu); 696 void (*enable_nmi_window)(struct kvm_vcpu *vcpu);
697 void (*enable_irq_window)(struct kvm_vcpu *vcpu); 697 int (*enable_irq_window)(struct kvm_vcpu *vcpu);
698 void (*update_cr8_intercept)(struct kvm_vcpu *vcpu, int tpr, int irr); 698 void (*update_cr8_intercept)(struct kvm_vcpu *vcpu, int tpr, int irr);
699 int (*vm_has_apicv)(struct kvm *kvm); 699 int (*vm_has_apicv)(struct kvm *kvm);
700 void (*hwapic_irr_update)(struct kvm_vcpu *vcpu, int max_irr); 700 void (*hwapic_irr_update)(struct kvm_vcpu *vcpu, int max_irr);