]> xenbits.xensource.com Git - people/iwj/xen.git/commitdiff
x86/dpci: make sure hvm_do_IRQ_dpci is only called for HVM guests
authorRoger Pau Monné <roger.pau@citrix.com>
Tue, 20 Jun 2017 12:49:11 +0000 (14:49 +0200)
committerJan Beulich <jbeulich@suse.com>
Tue, 20 Jun 2017 12:49:11 +0000 (14:49 +0200)
While there add an ASSERT to hvm_do_IRQ_dpci.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
xen/arch/x86/irq.c
xen/drivers/passthrough/io.c

index 466e60b77982f1bdf538a81187aa6f1d7c7d883d..523d089006eb5ab79b19515af2f8621879aba711 100644 (file)
@@ -1180,7 +1180,7 @@ static void __do_IRQ_guest(int irq)
         if ( (action->ack_type != ACKTYPE_NONE) &&
              !test_and_set_bool(pirq->masked) )
             action->in_flight++;
-        if ( !hvm_do_IRQ_dpci(d, pirq) )
+        if ( !is_hvm_domain(d) || !hvm_do_IRQ_dpci(d, pirq) )
             send_guest_pirq(d, pirq);
     }
 
index e5a43e508f4d10dfc317fa7ef55f5fe98ece13c4..7158afea889211864491f2e7c1a389b0bc1da96d 100644 (file)
@@ -696,6 +696,8 @@ int hvm_do_IRQ_dpci(struct domain *d, struct pirq *pirq)
     struct hvm_irq_dpci *dpci = domain_get_irq_dpci(d);
     struct hvm_pirq_dpci *pirq_dpci = pirq_dpci(pirq);
 
+    ASSERT(is_hvm_domain(d));
+
     if ( !iommu_enabled || !dpci || !pirq_dpci ||
          !(pirq_dpci->flags & HVM_IRQ_DPCI_MAPPED) )
         return 0;