diff options
-rw-r--r-- | drivers/xen/events.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/xen/events.c b/drivers/xen/events.c index b4e73011a80e..a3362479cfcf 100644 --- a/drivers/xen/events.c +++ b/drivers/xen/events.c | |||
@@ -436,6 +436,11 @@ static int bind_virq_to_irq(unsigned int virq, unsigned int cpu) | |||
436 | irq = per_cpu(virq_to_irq, cpu)[virq]; | 436 | irq = per_cpu(virq_to_irq, cpu)[virq]; |
437 | 437 | ||
438 | if (irq == -1) { | 438 | if (irq == -1) { |
439 | irq = find_unbound_irq(); | ||
440 | |||
441 | set_irq_chip_and_handler_name(irq, &xen_percpu_chip, | ||
442 | handle_percpu_irq, "virq"); | ||
443 | |||
439 | bind_virq.virq = virq; | 444 | bind_virq.virq = virq; |
440 | bind_virq.vcpu = cpu; | 445 | bind_virq.vcpu = cpu; |
441 | if (HYPERVISOR_event_channel_op(EVTCHNOP_bind_virq, | 446 | if (HYPERVISOR_event_channel_op(EVTCHNOP_bind_virq, |
@@ -443,11 +448,6 @@ static int bind_virq_to_irq(unsigned int virq, unsigned int cpu) | |||
443 | BUG(); | 448 | BUG(); |
444 | evtchn = bind_virq.port; | 449 | evtchn = bind_virq.port; |
445 | 450 | ||
446 | irq = find_unbound_irq(); | ||
447 | |||
448 | set_irq_chip_and_handler_name(irq, &xen_percpu_chip, | ||
449 | handle_percpu_irq, "virq"); | ||
450 | |||
451 | evtchn_to_irq[evtchn] = irq; | 451 | evtchn_to_irq[evtchn] = irq; |
452 | irq_info[irq] = mk_virq_info(evtchn, virq); | 452 | irq_info[irq] = mk_virq_info(evtchn, virq); |
453 | 453 | ||