diff options
author | Alexander Graf <agraf@suse.de> | 2013-02-13 06:56:14 -0500 |
---|---|---|
committer | Alexander Graf <agraf@suse.de> | 2013-02-13 06:56:14 -0500 |
commit | dd92d6f2749c43ebab91c4762a1bc79e6523e936 (patch) | |
tree | 6e6730bdd09284679c0861df6d0fcbec08ea7a87 /arch/x86/include | |
parent | b9e3e208935e95ad62bd1b1bc4408c23a9ae3ada (diff) | |
parent | b0da5bec30eca7ffbb2c89afa6fe503fd418d3a6 (diff) |
Merge commit 'origin/next' into kvm-ppc-next
Diffstat (limited to 'arch/x86/include')
-rw-r--r-- | arch/x86/include/asm/kvm_host.h | 6 | ||||
-rw-r--r-- | arch/x86/include/asm/vmx.h | 21 |
2 files changed, 26 insertions, 1 deletions
diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h index 77d56a4ba89c..635a74d22409 100644 --- a/arch/x86/include/asm/kvm_host.h +++ b/arch/x86/include/asm/kvm_host.h | |||
@@ -699,6 +699,11 @@ struct kvm_x86_ops { | |||
699 | void (*enable_nmi_window)(struct kvm_vcpu *vcpu); | 699 | void (*enable_nmi_window)(struct kvm_vcpu *vcpu); |
700 | void (*enable_irq_window)(struct kvm_vcpu *vcpu); | 700 | void (*enable_irq_window)(struct kvm_vcpu *vcpu); |
701 | void (*update_cr8_intercept)(struct kvm_vcpu *vcpu, int tpr, int irr); | 701 | void (*update_cr8_intercept)(struct kvm_vcpu *vcpu, int tpr, int irr); |
702 | int (*vm_has_apicv)(struct kvm *kvm); | ||
703 | void (*hwapic_irr_update)(struct kvm_vcpu *vcpu, int max_irr); | ||
704 | void (*hwapic_isr_update)(struct kvm *kvm, int isr); | ||
705 | void (*load_eoi_exitmap)(struct kvm_vcpu *vcpu, u64 *eoi_exit_bitmap); | ||
706 | void (*set_virtual_x2apic_mode)(struct kvm_vcpu *vcpu, bool set); | ||
702 | int (*set_tss_addr)(struct kvm *kvm, unsigned int addr); | 707 | int (*set_tss_addr)(struct kvm *kvm, unsigned int addr); |
703 | int (*get_tdp_level)(void); | 708 | int (*get_tdp_level)(void); |
704 | u64 (*get_mt_mask)(struct kvm_vcpu *vcpu, gfn_t gfn, bool is_mmio); | 709 | u64 (*get_mt_mask)(struct kvm_vcpu *vcpu, gfn_t gfn, bool is_mmio); |
@@ -993,6 +998,7 @@ int kvm_age_hva(struct kvm *kvm, unsigned long hva); | |||
993 | int kvm_test_age_hva(struct kvm *kvm, unsigned long hva); | 998 | int kvm_test_age_hva(struct kvm *kvm, unsigned long hva); |
994 | void kvm_set_spte_hva(struct kvm *kvm, unsigned long hva, pte_t pte); | 999 | void kvm_set_spte_hva(struct kvm *kvm, unsigned long hva, pte_t pte); |
995 | int cpuid_maxphyaddr(struct kvm_vcpu *vcpu); | 1000 | int cpuid_maxphyaddr(struct kvm_vcpu *vcpu); |
1001 | int kvm_cpu_has_injectable_intr(struct kvm_vcpu *v); | ||
996 | int kvm_cpu_has_interrupt(struct kvm_vcpu *vcpu); | 1002 | int kvm_cpu_has_interrupt(struct kvm_vcpu *vcpu); |
997 | int kvm_arch_interrupt_allowed(struct kvm_vcpu *vcpu); | 1003 | int kvm_arch_interrupt_allowed(struct kvm_vcpu *vcpu); |
998 | int kvm_cpu_get_interrupt(struct kvm_vcpu *v); | 1004 | int kvm_cpu_get_interrupt(struct kvm_vcpu *v); |
diff --git a/arch/x86/include/asm/vmx.h b/arch/x86/include/asm/vmx.h index e385df97bfdc..5c9dbadd364a 100644 --- a/arch/x86/include/asm/vmx.h +++ b/arch/x86/include/asm/vmx.h | |||
@@ -62,10 +62,12 @@ | |||
62 | #define EXIT_REASON_MCE_DURING_VMENTRY 41 | 62 | #define EXIT_REASON_MCE_DURING_VMENTRY 41 |
63 | #define EXIT_REASON_TPR_BELOW_THRESHOLD 43 | 63 | #define EXIT_REASON_TPR_BELOW_THRESHOLD 43 |
64 | #define EXIT_REASON_APIC_ACCESS 44 | 64 | #define EXIT_REASON_APIC_ACCESS 44 |
65 | #define EXIT_REASON_EOI_INDUCED 45 | ||
65 | #define EXIT_REASON_EPT_VIOLATION 48 | 66 | #define EXIT_REASON_EPT_VIOLATION 48 |
66 | #define EXIT_REASON_EPT_MISCONFIG 49 | 67 | #define EXIT_REASON_EPT_MISCONFIG 49 |
67 | #define EXIT_REASON_WBINVD 54 | 68 | #define EXIT_REASON_WBINVD 54 |
68 | #define EXIT_REASON_XSETBV 55 | 69 | #define EXIT_REASON_XSETBV 55 |
70 | #define EXIT_REASON_APIC_WRITE 56 | ||
69 | #define EXIT_REASON_INVPCID 58 | 71 | #define EXIT_REASON_INVPCID 58 |
70 | 72 | ||
71 | #define VMX_EXIT_REASONS \ | 73 | #define VMX_EXIT_REASONS \ |
@@ -103,7 +105,12 @@ | |||
103 | { EXIT_REASON_APIC_ACCESS, "APIC_ACCESS" }, \ | 105 | { EXIT_REASON_APIC_ACCESS, "APIC_ACCESS" }, \ |
104 | { EXIT_REASON_EPT_VIOLATION, "EPT_VIOLATION" }, \ | 106 | { EXIT_REASON_EPT_VIOLATION, "EPT_VIOLATION" }, \ |
105 | { EXIT_REASON_EPT_MISCONFIG, "EPT_MISCONFIG" }, \ | 107 | { EXIT_REASON_EPT_MISCONFIG, "EPT_MISCONFIG" }, \ |
106 | { EXIT_REASON_WBINVD, "WBINVD" } | 108 | { EXIT_REASON_WBINVD, "WBINVD" }, \ |
109 | { EXIT_REASON_APIC_WRITE, "APIC_WRITE" }, \ | ||
110 | { EXIT_REASON_EOI_INDUCED, "EOI_INDUCED" }, \ | ||
111 | { EXIT_REASON_INVALID_STATE, "INVALID_STATE" }, \ | ||
112 | { EXIT_REASON_INVD, "INVD" }, \ | ||
113 | { EXIT_REASON_INVPCID, "INVPCID" } | ||
107 | 114 | ||
108 | #ifdef __KERNEL__ | 115 | #ifdef __KERNEL__ |
109 | 116 | ||
@@ -138,9 +145,12 @@ | |||
138 | #define SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSES 0x00000001 | 145 | #define SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSES 0x00000001 |
139 | #define SECONDARY_EXEC_ENABLE_EPT 0x00000002 | 146 | #define SECONDARY_EXEC_ENABLE_EPT 0x00000002 |
140 | #define SECONDARY_EXEC_RDTSCP 0x00000008 | 147 | #define SECONDARY_EXEC_RDTSCP 0x00000008 |
148 | #define SECONDARY_EXEC_VIRTUALIZE_X2APIC_MODE 0x00000010 | ||
141 | #define SECONDARY_EXEC_ENABLE_VPID 0x00000020 | 149 | #define SECONDARY_EXEC_ENABLE_VPID 0x00000020 |
142 | #define SECONDARY_EXEC_WBINVD_EXITING 0x00000040 | 150 | #define SECONDARY_EXEC_WBINVD_EXITING 0x00000040 |
143 | #define SECONDARY_EXEC_UNRESTRICTED_GUEST 0x00000080 | 151 | #define SECONDARY_EXEC_UNRESTRICTED_GUEST 0x00000080 |
152 | #define SECONDARY_EXEC_APIC_REGISTER_VIRT 0x00000100 | ||
153 | #define SECONDARY_EXEC_VIRTUAL_INTR_DELIVERY 0x00000200 | ||
144 | #define SECONDARY_EXEC_PAUSE_LOOP_EXITING 0x00000400 | 154 | #define SECONDARY_EXEC_PAUSE_LOOP_EXITING 0x00000400 |
145 | #define SECONDARY_EXEC_ENABLE_INVPCID 0x00001000 | 155 | #define SECONDARY_EXEC_ENABLE_INVPCID 0x00001000 |
146 | 156 | ||
@@ -178,6 +188,7 @@ enum vmcs_field { | |||
178 | GUEST_GS_SELECTOR = 0x0000080a, | 188 | GUEST_GS_SELECTOR = 0x0000080a, |
179 | GUEST_LDTR_SELECTOR = 0x0000080c, | 189 | GUEST_LDTR_SELECTOR = 0x0000080c, |
180 | GUEST_TR_SELECTOR = 0x0000080e, | 190 | GUEST_TR_SELECTOR = 0x0000080e, |
191 | GUEST_INTR_STATUS = 0x00000810, | ||
181 | HOST_ES_SELECTOR = 0x00000c00, | 192 | HOST_ES_SELECTOR = 0x00000c00, |
182 | HOST_CS_SELECTOR = 0x00000c02, | 193 | HOST_CS_SELECTOR = 0x00000c02, |
183 | HOST_SS_SELECTOR = 0x00000c04, | 194 | HOST_SS_SELECTOR = 0x00000c04, |
@@ -205,6 +216,14 @@ enum vmcs_field { | |||
205 | APIC_ACCESS_ADDR_HIGH = 0x00002015, | 216 | APIC_ACCESS_ADDR_HIGH = 0x00002015, |
206 | EPT_POINTER = 0x0000201a, | 217 | EPT_POINTER = 0x0000201a, |
207 | EPT_POINTER_HIGH = 0x0000201b, | 218 | EPT_POINTER_HIGH = 0x0000201b, |
219 | EOI_EXIT_BITMAP0 = 0x0000201c, | ||
220 | EOI_EXIT_BITMAP0_HIGH = 0x0000201d, | ||
221 | EOI_EXIT_BITMAP1 = 0x0000201e, | ||
222 | EOI_EXIT_BITMAP1_HIGH = 0x0000201f, | ||
223 | EOI_EXIT_BITMAP2 = 0x00002020, | ||
224 | EOI_EXIT_BITMAP2_HIGH = 0x00002021, | ||
225 | EOI_EXIT_BITMAP3 = 0x00002022, | ||
226 | EOI_EXIT_BITMAP3_HIGH = 0x00002023, | ||
208 | GUEST_PHYSICAL_ADDRESS = 0x00002400, | 227 | GUEST_PHYSICAL_ADDRESS = 0x00002400, |
209 | GUEST_PHYSICAL_ADDRESS_HIGH = 0x00002401, | 228 | GUEST_PHYSICAL_ADDRESS_HIGH = 0x00002401, |
210 | VMCS_LINK_POINTER = 0x00002800, | 229 | VMCS_LINK_POINTER = 0x00002800, |