aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/xen/events.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/xen/events.c b/drivers/xen/events.c
index 7016a734257c..3df53de6b43a 100644
--- a/drivers/xen/events.c
+++ b/drivers/xen/events.c
@@ -586,8 +586,7 @@ int xen_allocate_pirq(unsigned gsi, int shareable, char *name)
586 * we are using the !xen_initial_domain() to drop in the function.*/ 586 * we are using the !xen_initial_domain() to drop in the function.*/
587 if (identity_mapped_irq(gsi) || !xen_initial_domain()) { 587 if (identity_mapped_irq(gsi) || !xen_initial_domain()) {
588 irq = gsi; 588 irq = gsi;
589 irq_to_desc_alloc_node(irq, 0); 589 irq_alloc_desc_at(irq, 0);
590 dynamic_irq_init(irq);
591 } else 590 } else
592 irq = find_unbound_irq(); 591 irq = find_unbound_irq();
593 592
@@ -602,7 +601,7 @@ int xen_allocate_pirq(unsigned gsi, int shareable, char *name)
602 * this in the priv domain. */ 601 * this in the priv domain. */
603 if (xen_initial_domain() && 602 if (xen_initial_domain() &&
604 HYPERVISOR_physdev_op(PHYSDEVOP_alloc_irq_vector, &irq_op)) { 603 HYPERVISOR_physdev_op(PHYSDEVOP_alloc_irq_vector, &irq_op)) {
605 dynamic_irq_cleanup(irq); 604 irq_free_desc(irq);
606 irq = -ENOSPC; 605 irq = -ENOSPC;
607 goto out; 606 goto out;
608 } 607 }
@@ -629,7 +628,7 @@ int xen_destroy_irq(int irq)
629 628
630 irq_info[irq] = mk_unbound_info(); 629 irq_info[irq] = mk_unbound_info();
631 630
632 dynamic_irq_cleanup(irq); 631 irq_free_desc(irq);
633 632
634out: 633out:
635 spin_unlock(&irq_mapping_update_lock); 634 spin_unlock(&irq_mapping_update_lock);