[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-4.1-testing] xen: if mapping GSIs we run out of pirq < nr_irqs_gsi, use the others



# HG changeset patch
# User Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
# Date 1315906544 -3600
# Node ID 08568ad1140addd33566b2ec51230459efd96629
# Parent  78d8c5227bb1b575e299ef76fcbe97676bd2a4fb
xen: if mapping GSIs we run out of pirq < nr_irqs_gsi, use the others

PV on HVM guests can have more GSIs than the host, in that case we
could run out of pirq < nr_irqs_gsi. When that happens use pirq >=
nr_irqs_gsi rather than returning an error.

Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
Tested-by: Benjamin Schweikert <b.schweikert@xxxxxxxxxxxxxx>
xen-unstable changeset:   23832:ad3b4bb097cb
xen-unstable date:        Tue Sep 13 10:32:24 2011 +0100
---


diff -r 78d8c5227bb1 -r 08568ad1140a xen/arch/x86/irq.c
--- a/xen/arch/x86/irq.c        Thu Sep 08 12:24:35 2011 +0100
+++ b/xen/arch/x86/irq.c        Tue Sep 13 10:35:44 2011 +0100
@@ -1463,24 +1463,18 @@
             {
                 if ( !is_hvm_domain(d) ||
                         d->arch.pirq_emuirq[i] == IRQ_UNBOUND )
-                    break;
+                    return i;
             }
-        if ( i == nr_irqs_gsi )
-            return -ENOSPC;
     }
-    else
-    {
-        for ( i = d->nr_pirqs - 1; i >= nr_irqs_gsi; i-- )
-            if ( !d->arch.pirq_irq[i] )
-            {
-                if ( !is_hvm_domain(d) ||
-                        d->arch.pirq_emuirq[i] == IRQ_UNBOUND )
-                    break;
-            }
-        if ( i < nr_irqs_gsi )
-            return -ENOSPC;
-    }
-
+    for ( i = d->nr_pirqs - 1; i >= nr_irqs_gsi; i-- )
+        if ( !d->arch.pirq_irq[i] )
+        {
+            if ( !is_hvm_domain(d) ||
+                    d->arch.pirq_emuirq[i] == IRQ_UNBOUND )
+                break;
+        }
+    if ( i < nr_irqs_gsi )
+        return -ENOSPC;
     return i;
 }
 

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.