xen: get_free_pirq: make sure that the returned pirq is allocated
authorStefano Stabellini <stefano.stabellini@eu.citrix.com>
Wed, 31 Aug 2011 14:23:49 +0000 (15:23 +0100)
committerStefano Stabellini <stefano.stabellini@eu.citrix.com>
Wed, 31 Aug 2011 14:23:49 +0000 (15:23 +0100)
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
xen/arch/x86/irq.c

index 4d0c590687297d102c6c2ed038d3634eedf31624..9518d6008701525ca849df2066c4f9c24fdc0617 100644 (file)
@@ -1587,13 +1587,19 @@ int get_free_pirq(struct domain *d, int type, int index)
     {
         for ( i = 16; i < nr_irqs_gsi; i++ )
             if ( is_free_pirq(d, pirq_info(d, i)) )
+            {
+                pirq_get_info(d, i);
                 return i;
+            }
     }
     else
     {
         for ( i = d->nr_pirqs - 1; i >= nr_irqs_gsi; i-- )
             if ( is_free_pirq(d, pirq_info(d, i)) )
+            {
+                pirq_get_info(d, i);
                 return i;
+            }
     }
 
     return -ENOSPC;