diff options
author | Jeremy Fitzhardinge <jeremy@goop.org> | 2008-12-17 16:42:29 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-12-18 06:48:29 -0500 |
commit | 6f8a0ed4e5d86c01db5e7e3f95d9003b7cf9cb87 (patch) | |
tree | 298852a7032f6c99773690a2e6e3f6f0f090ed6c /drivers/xen/events.c | |
parent | 17483a1f34c970e6c2cb8c082d4441bfabbe88a9 (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.c | 5 |
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) | |||
233 | static int find_unbound_irq(void) | 233 | static 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 | ||