diff options
author | Yang Zhang <yang.z.zhang@Intel.com> | 2013-04-18 11:34:04 +0200 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2013-04-18 11:34:04 +0200 |
commit | 1c0ac49b1d6c3d54fc1f75661742a988ca7cf255 (patch) | |
tree | e1367294435ce3a1a814dea34caf6251fd8234be /xen/include/asm-x86/hvm | |
parent | b266924990af96ee47ee299e1b6bb87fac2e2548 (diff) | |
download | xen-1c0ac49b1d6c3d54fc1f75661742a988ca7cf255.tar.gz xen-1c0ac49b1d6c3d54fc1f75661742a988ca7cf255.tar.bz2 xen-1c0ac49b1d6c3d54fc1f75661742a988ca7cf255.zip |
VMX: Turn on posted interrupt bit in vmcs
Turn on posted interrupt for vcpu if posted interrupt is avaliable.
Signed-off-by: Yang Zhang <yang.z.zhang@Intel.com>
Reviewed-by: Jun Nakajima <jun.nakajima@intel.com>
Acked-by: Keir Fraser <keir@xen.org>
Acked-by: George Dunlap <george.dunlap@eu.citrix.com> (from a release perspective)
Diffstat (limited to 'xen/include/asm-x86/hvm')
-rw-r--r-- | xen/include/asm-x86/hvm/vmx/vmcs.h | 8 | ||||
-rw-r--r-- | xen/include/asm-x86/hvm/vmx/vmx.h | 1 |
2 files changed, 9 insertions, 0 deletions
diff --git a/xen/include/asm-x86/hvm/vmx/vmcs.h b/xen/include/asm-x86/hvm/vmx/vmcs.h index 3a5c91ab84..f30e5ac224 100644 --- a/xen/include/asm-x86/hvm/vmx/vmcs.h +++ b/xen/include/asm-x86/hvm/vmx/vmcs.h @@ -21,6 +21,7 @@ #include <asm/hvm/io.h> #include <asm/hvm/vpmu.h> +#include <irq_vectors.h> extern void vmcs_dump_vcpu(struct vcpu *v); extern void setup_vmcs_dump(void); @@ -73,6 +74,12 @@ struct vmx_domain { unsigned long apic_access_mfn; }; +struct pi_desc { + DECLARE_BITMAP(pir, NR_VECTORS); + u32 control; + u32 rsvd[7]; +} __attribute__ ((aligned (64))); + #define ept_get_wl(ept) ((ept)->ept_wl) #define ept_get_asr(ept) ((ept)->asr) #define ept_get_eptp(ept) ((ept)->eptp) @@ -113,6 +120,7 @@ struct arch_vmx_struct { uint32_t eoi_exitmap_changed; uint64_t eoi_exit_bitmap[4]; + struct pi_desc pi_desc; unsigned long host_cr0; diff --git a/xen/include/asm-x86/hvm/vmx/vmx.h b/xen/include/asm-x86/hvm/vmx/vmx.h index d4d6feb461..7efe0f3c16 100644 --- a/xen/include/asm-x86/hvm/vmx/vmx.h +++ b/xen/include/asm-x86/hvm/vmx/vmx.h @@ -217,6 +217,7 @@ void vmx_update_secondary_exec_control(struct vcpu *v); #define MODRM_EAX_ECX ".byte 0xc1\n" /* EAX, ECX */ extern u64 vmx_ept_vpid_cap; +extern uint8_t posted_intr_vector; #define cpu_has_vmx_ept_exec_only_supported \ (vmx_ept_vpid_cap & VMX_EPT_EXEC_ONLY_SUPPORTED) |