From: Jan Beulich Date: Mon, 10 Sep 2012 14:47:31 +0000 (+0200) Subject: x86/hvm: don't give vector callback higher priority than NMI/MCE X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~7962 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=7d6a4f3bee868a36e892abcd4112b03117ebcb5e;p=xen.git x86/hvm: don't give vector callback higher priority than NMI/MCE Those two should always be delivered first imo. Signed-off-by: Jan Beulich Acked-by: Keir Fraser Acked-by: Stefano Stabellini --- diff --git a/xen/arch/x86/hvm/irq.c b/xen/arch/x86/hvm/irq.c index f44f3b957e..604e927c76 100644 --- a/xen/arch/x86/hvm/irq.c +++ b/xen/arch/x86/hvm/irq.c @@ -395,16 +395,16 @@ struct hvm_intack hvm_vcpu_has_pending_irq(struct vcpu *v) struct hvm_domain *plat = &v->domain->arch.hvm_domain; int vector; - if ( (plat->irq.callback_via_type == HVMIRQ_callback_vector) - && vcpu_info(v, evtchn_upcall_pending) ) - return hvm_intack_vector(plat->irq.callback_via.vector); - if ( unlikely(v->nmi_pending) ) return hvm_intack_nmi; if ( unlikely(v->mce_pending) ) return hvm_intack_mce; + if ( (plat->irq.callback_via_type == HVMIRQ_callback_vector) + && vcpu_info(v, evtchn_upcall_pending) ) + return hvm_intack_vector(plat->irq.callback_via.vector); + if ( vlapic_accept_pic_intr(v) && plat->vpic[0].int_output ) return hvm_intack_pic(0);