diff options
author | Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> | 2010-10-18 17:11:10 -0400 |
---|---|---|
committer | Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> | 2010-10-18 17:12:38 -0400 |
commit | 2c52f8d3f787ec8e39022da7d57b9f4f482ad2d0 (patch) | |
tree | eb4b225095a204d3913b547de2befae8a49c357d /drivers | |
parent | 2775609c5d9a9d40ad5f101e23438ceacee4250b (diff) |
x86: xen: Sanitse irq handling (part two)
Thomas Gleixner cleaned up event handling to use the
sparse_irq handling, but the xen-pcifront patches utilized the
old mechanism. This fixes them to work with sparse_irq handling.
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/xen/events.c | 7 |
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 | ||
634 | out: | 633 | out: |
635 | spin_unlock(&irq_mapping_update_lock); | 634 | spin_unlock(&irq_mapping_update_lock); |