Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
[linux-2.6-microblaze.git] / arch / x86 / include / asm / kvm_host.h
index efee29d..6e7c545 100644 (file)
@@ -782,6 +782,7 @@ struct kvm_vcpu_arch {
        unsigned nmi_pending; /* NMI queued after currently running handler */
        bool nmi_injected;    /* Trying to inject an NMI this entry */
        bool smi_pending;    /* SMI queued after currently running handler */
+       u8 handling_intr_from_guest;
 
        struct kvm_mtrr mtrr_state;
        u64 pat;
@@ -1519,6 +1520,7 @@ struct kvm_x86_init_ops {
        int (*disabled_by_bios)(void);
        int (*check_processor_compatibility)(void);
        int (*hardware_setup)(void);
+       unsigned int (*handle_intel_pt_intr)(void);
 
        struct kvm_x86_ops *runtime_ops;
 };
@@ -1568,6 +1570,9 @@ static inline int kvm_arch_flush_remote_tlb(struct kvm *kvm)
                return -ENOTSUPP;
 }
 
+#define kvm_arch_pmi_in_guest(vcpu) \
+       ((vcpu) && (vcpu)->arch.handling_intr_from_guest)
+
 int kvm_mmu_module_init(void);
 void kvm_mmu_module_exit(void);
 
@@ -1898,8 +1903,6 @@ int kvm_skip_emulated_instruction(struct kvm_vcpu *vcpu);
 int kvm_complete_insn_gp(struct kvm_vcpu *vcpu, int err);
 void __kvm_request_immediate_exit(struct kvm_vcpu *vcpu);
 
-int kvm_is_in_guest(void);
-
 void __user *__x86_set_memory_region(struct kvm *kvm, int id, gpa_t gpa,
                                     u32 size);
 bool kvm_vcpu_is_reset_bsp(struct kvm_vcpu *vcpu);