From: Roger Pau Monné Date: Wed, 5 Feb 2020 12:50:46 +0000 (+0100) Subject: x86/vvmx: don't enable interrupt window when using virt intr delivery X-Git-Tag: archive/raspbian/4.14.0+80-gd101b417b7-1+rpi1^2~63^2~750 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=67f9d0b95ae2cd441bc003e03ae69a487f7b40bb;p=xen.git x86/vvmx: don't enable interrupt window when using virt intr delivery If virtual interrupt delivery is used to inject the interrupt to the guest the interrupt window shouldn't be enabled, as the interrupt is already injected using the GUEST_INTR_STATUS vmcs field. Reported-by: Kevin Tian Signed-off-by: Roger Pau Monné Reviewed-by: Kevin Tian --- diff --git a/xen/arch/x86/hvm/vmx/intr.c b/xen/arch/x86/hvm/vmx/intr.c index 2eaf3f8d36..49a1295f09 100644 --- a/xen/arch/x86/hvm/vmx/intr.c +++ b/xen/arch/x86/hvm/vmx/intr.c @@ -209,7 +209,7 @@ static int nvmx_intr_intercept(struct vcpu *v, struct hvm_intack intack) if ( unlikely(intack.source != hvm_intsrc_none) ) vmx_enable_intr_window(v, intack); } - else + else if ( !cpu_has_vmx_virtual_intr_delivery ) vmx_enable_intr_window(v, intack); return 1;