aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/include
diff options
context:
space:
mode:
authorAlexander Graf <agraf@suse.de>2013-02-13 06:56:14 -0500
committerAlexander Graf <agraf@suse.de>2013-02-13 06:56:14 -0500
commitdd92d6f2749c43ebab91c4762a1bc79e6523e936 (patch)
tree6e6730bdd09284679c0861df6d0fcbec08ea7a87 /arch/x86/include
parentb9e3e208935e95ad62bd1b1bc4408c23a9ae3ada (diff)
parentb0da5bec30eca7ffbb2c89afa6fe503fd418d3a6 (diff)
Merge commit 'origin/next' into kvm-ppc-next
Diffstat (limited to 'arch/x86/include')
-rw-r--r--arch/x86/include/asm/kvm_host.h6
-rw-r--r--arch/x86/include/asm/vmx.h21
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);
993int kvm_test_age_hva(struct kvm *kvm, unsigned long hva); 998int kvm_test_age_hva(struct kvm *kvm, unsigned long hva);
994void kvm_set_spte_hva(struct kvm *kvm, unsigned long hva, pte_t pte); 999void kvm_set_spte_hva(struct kvm *kvm, unsigned long hva, pte_t pte);
995int cpuid_maxphyaddr(struct kvm_vcpu *vcpu); 1000int cpuid_maxphyaddr(struct kvm_vcpu *vcpu);
1001int kvm_cpu_has_injectable_intr(struct kvm_vcpu *v);
996int kvm_cpu_has_interrupt(struct kvm_vcpu *vcpu); 1002int kvm_cpu_has_interrupt(struct kvm_vcpu *vcpu);
997int kvm_arch_interrupt_allowed(struct kvm_vcpu *vcpu); 1003int kvm_arch_interrupt_allowed(struct kvm_vcpu *vcpu);
998int kvm_cpu_get_interrupt(struct kvm_vcpu *v); 1004int 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,