diff options
| -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, |
