diff options
Diffstat (limited to 'drivers/xen/events.c')
-rw-r--r-- | drivers/xen/events.c | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/drivers/xen/events.c b/drivers/xen/events.c index 1033f6284f31..b54285e27b3b 100644 --- a/drivers/xen/events.c +++ b/drivers/xen/events.c | |||
@@ -716,6 +716,12 @@ int xen_create_msi_irq(struct pci_dev *dev, struct msi_desc *msidesc, int type) | |||
716 | map_irq.entry_nr = msidesc->msi_attrib.entry_nr; | 716 | map_irq.entry_nr = msidesc->msi_attrib.entry_nr; |
717 | } | 717 | } |
718 | 718 | ||
719 | rc = HYPERVISOR_physdev_op(PHYSDEVOP_map_pirq, &map_irq); | ||
720 | if (rc) { | ||
721 | dev_warn(&dev->dev, "xen map irq failed %d\n", rc); | ||
722 | goto out; | ||
723 | } | ||
724 | |||
719 | spin_lock(&irq_mapping_update_lock); | 725 | spin_lock(&irq_mapping_update_lock); |
720 | 726 | ||
721 | irq = xen_allocate_irq_dynamic(); | 727 | irq = xen_allocate_irq_dynamic(); |
@@ -723,15 +729,6 @@ int xen_create_msi_irq(struct pci_dev *dev, struct msi_desc *msidesc, int type) | |||
723 | if (irq == -1) | 729 | if (irq == -1) |
724 | goto out; | 730 | goto out; |
725 | 731 | ||
726 | rc = HYPERVISOR_physdev_op(PHYSDEVOP_map_pirq, &map_irq); | ||
727 | if (rc) { | ||
728 | printk(KERN_WARNING "xen map irq failed %d\n", rc); | ||
729 | |||
730 | xen_free_irq(irq); | ||
731 | |||
732 | irq = -1; | ||
733 | goto out; | ||
734 | } | ||
735 | irq_info[irq] = mk_pirq_info(0, map_irq.pirq, 0, map_irq.index); | 732 | irq_info[irq] = mk_pirq_info(0, map_irq.pirq, 0, map_irq.index); |
736 | 733 | ||
737 | set_irq_chip_and_handler_name(irq, &xen_pirq_chip, | 734 | set_irq_chip_and_handler_name(irq, &xen_pirq_chip, |