aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/xen/events.c
diff options
context:
space:
mode:
authorJeremy Fitzhardinge <jeremy@goop.org>2008-12-17 16:42:29 -0500
committerIngo Molnar <mingo@elte.hu>2008-12-18 06:48:29 -0500
commit6f8a0ed4e5d86c01db5e7e3f95d9003b7cf9cb87 (patch)
tree298852a7032f6c99773690a2e6e3f6f0f090ed6c /drivers/xen/events.c
parent17483a1f34c970e6c2cb8c082d4441bfabbe88a9 (diff)
sparseirq, xen: make sure irq_desc is allocated for interrupts
Impact: fix crash Make sure all Xen irqs have an irq_desc. Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'drivers/xen/events.c')
-rw-r--r--drivers/xen/events.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/xen/events.c b/drivers/xen/events.c
index 2924faa7f6c4..46625cd38743 100644
--- a/drivers/xen/events.c
+++ b/drivers/xen/events.c
@@ -233,6 +233,7 @@ static void unmask_evtchn(int port)
233static int find_unbound_irq(void) 233static int find_unbound_irq(void)
234{ 234{
235 int irq; 235 int irq;
236 struct irq_desc *desc;
236 237
237 /* Only allocate from dynirq range */ 238 /* Only allocate from dynirq range */
238 for (irq = 0; irq < nr_irqs; irq++) 239 for (irq = 0; irq < nr_irqs; irq++)
@@ -242,6 +243,10 @@ static int find_unbound_irq(void)
242 if (irq == nr_irqs) 243 if (irq == nr_irqs)
243 panic("No available IRQ to bind to: increase nr_irqs!\n"); 244 panic("No available IRQ to bind to: increase nr_irqs!\n");
244 245
246 desc = irq_to_desc_alloc_cpu(irq, 0);
247 if (WARN_ON(desc == NULL))
248 return -1;
249
245 return irq; 250 return irq;
246} 251}
247 252