Enabling posted interrupts requires the virtual interrupt delivery feature,
which is disabled for PVH guests, so make sure posted interrupts are also
disabled or else vmlaunch will fail.

Signed-off-by: Roger Pau Monné <roger....@citrix.com>
Reported-and-Tested-by: Lars Eggert <l...@netapp.com>
Acked-by: Kevin Tian <kevin.t...@intel.com>
Cc: Jun Nakajima <jun.nakaj...@intel.com>
Cc: Eddie Dong <eddie.d...@intel.com>
Cc: Kevin Tian <kevin.t...@intel.com>
Cc: Jan Beulich <jbeul...@suse.com>
Cc: Andrew Cooper <andrew.coop...@citrix.com>
---
Changes since v2:
 - Move the code so it's closer to virtual interrupt delivery disabling.
 - Update comment.
---
 xen/arch/x86/hvm/vmx/vmcs.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index a714549..f585883 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -976,6 +976,10 @@ static int construct_vmcs(struct vcpu *v)
               | SECONDARY_EXEC_VIRTUAL_INTR_DELIVERY);
         v->arch.hvm_vmx.exec_control &= ~CPU_BASED_TPR_SHADOW;
 
+        /* In turn, disable posted interrupts. */
+        __vmwrite(PIN_BASED_VM_EXEC_CONTROL,
+            vmx_pin_based_exec_control & ~PIN_BASED_POSTED_INTERRUPT);
+
         /* Unrestricted guest (real mode for EPT) */
         v->arch.hvm_vmx.secondary_exec_control &=
             ~SECONDARY_EXEC_UNRESTRICTED_GUEST;
-- 
1.9.5 (Apple Git-50.3)


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to