aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/hvm/irq.c
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2012-09-10 16:47:31 +0200
committerJan Beulich <jbeulich@suse.com>2012-09-10 16:47:31 +0200
commit7d6a4f3bee868a36e892abcd4112b03117ebcb5e (patch)
treeb5c510467597dbcc3378aea133b57deee8d9be9a /xen/arch/x86/hvm/irq.c
parent8b0eac76421bd55bab2a542a77f40db78f2b7bad (diff)
downloadxen-7d6a4f3bee868a36e892abcd4112b03117ebcb5e.tar.gz
xen-7d6a4f3bee868a36e892abcd4112b03117ebcb5e.tar.bz2
xen-7d6a4f3bee868a36e892abcd4112b03117ebcb5e.zip
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 <jbeulich@suse.com> Acked-by: Keir Fraser <keir@xen.org> Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Diffstat (limited to 'xen/arch/x86/hvm/irq.c')
-rw-r--r--xen/arch/x86/hvm/irq.c8
1 files changed, 4 insertions, 4 deletions
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);