|
@@ -233,6 +233,7 @@ static void unmask_evtchn(int port)
|
|
static int find_unbound_irq(void)
|
|
static int find_unbound_irq(void)
|
|
{
|
|
{
|
|
int irq;
|
|
int irq;
|
|
|
|
+ struct irq_desc *desc;
|
|
|
|
|
|
/* Only allocate from dynirq range */
|
|
/* Only allocate from dynirq range */
|
|
for (irq = 0; irq < nr_irqs; irq++)
|
|
for (irq = 0; irq < nr_irqs; irq++)
|
|
@@ -242,6 +243,10 @@ static int find_unbound_irq(void)
|
|
if (irq == nr_irqs)
|
|
if (irq == nr_irqs)
|
|
panic("No available IRQ to bind to: increase nr_irqs!\n");
|
|
panic("No available IRQ to bind to: increase nr_irqs!\n");
|
|
|
|
|
|
|
|
+ desc = irq_to_desc_alloc_cpu(irq, 0);
|
|
|
|
+ if (WARN_ON(desc == NULL))
|
|
|
|
+ return -1;
|
|
|
|
+
|
|
return irq;
|
|
return irq;
|
|
}
|
|
}
|
|
|
|
|