diff options
author | Ian Campbell <ian.campbell@citrix.com> | 2011-02-18 11:43:35 -0500 |
---|---|---|
committer | Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> | 2011-03-10 14:44:43 -0500 |
commit | f420e010edd84eb2c237fc87b7451e69740fed46 (patch) | |
tree | 904e9feb634f4cd4e4dbdc7de9b0fd009a86cd28 | |
parent | 2e55288f63343f0810f4f0a3004f78037cfb93d3 (diff) |
xen: events: push set_irq_msi down into xen_create_msi_irq
Makes the tail end of this function look even more like
xen_bind_pirq_msi_to_irq.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-rw-r--r-- | arch/x86/pci/xen.c | 10 | ||||
-rw-r--r-- | drivers/xen/events.c | 10 |
2 files changed, 10 insertions, 10 deletions
diff --git a/arch/x86/pci/xen.c b/arch/x86/pci/xen.c index 93e42152d8d0..15fd981d35f1 100644 --- a/arch/x86/pci/xen.c +++ b/arch/x86/pci/xen.c | |||
@@ -185,23 +185,15 @@ static void xen_teardown_msi_irq(unsigned int irq) | |||
185 | #ifdef CONFIG_XEN_DOM0 | 185 | #ifdef CONFIG_XEN_DOM0 |
186 | static int xen_initdom_setup_msi_irqs(struct pci_dev *dev, int nvec, int type) | 186 | static int xen_initdom_setup_msi_irqs(struct pci_dev *dev, int nvec, int type) |
187 | { | 187 | { |
188 | int irq, ret; | 188 | int irq; |
189 | struct msi_desc *msidesc; | 189 | struct msi_desc *msidesc; |
190 | 190 | ||
191 | list_for_each_entry(msidesc, &dev->msi_list, list) { | 191 | list_for_each_entry(msidesc, &dev->msi_list, list) { |
192 | irq = xen_create_msi_irq(dev, msidesc, type); | 192 | irq = xen_create_msi_irq(dev, msidesc, type); |
193 | if (irq < 0) | 193 | if (irq < 0) |
194 | return -1; | 194 | return -1; |
195 | |||
196 | ret = set_irq_msi(irq, msidesc); | ||
197 | if (ret) | ||
198 | goto error; | ||
199 | } | 195 | } |
200 | return 0; | 196 | return 0; |
201 | |||
202 | error: | ||
203 | xen_destroy_irq(irq); | ||
204 | return ret; | ||
205 | } | 197 | } |
206 | #endif | 198 | #endif |
207 | #endif | 199 | #endif |
diff --git a/drivers/xen/events.c b/drivers/xen/events.c index 721b393fd8aa..77ede77a9ee9 100644 --- a/drivers/xen/events.c +++ b/drivers/xen/events.c | |||
@@ -691,7 +691,7 @@ error_irq: | |||
691 | 691 | ||
692 | int xen_create_msi_irq(struct pci_dev *dev, struct msi_desc *msidesc, int type) | 692 | int xen_create_msi_irq(struct pci_dev *dev, struct msi_desc *msidesc, int type) |
693 | { | 693 | { |
694 | int irq = -1; | 694 | int ret, irq = -1; |
695 | struct physdev_map_pirq map_irq; | 695 | struct physdev_map_pirq map_irq; |
696 | int rc; | 696 | int rc; |
697 | int pos; | 697 | int pos; |
@@ -736,9 +736,17 @@ int xen_create_msi_irq(struct pci_dev *dev, struct msi_desc *msidesc, int type) | |||
736 | handle_level_irq, | 736 | handle_level_irq, |
737 | (type == PCI_CAP_ID_MSIX) ? "msi-x":"msi"); | 737 | (type == PCI_CAP_ID_MSIX) ? "msi-x":"msi"); |
738 | 738 | ||
739 | ret = set_irq_msi(irq, msidesc); | ||
740 | if (ret) | ||
741 | goto out_irq; | ||
742 | |||
739 | out: | 743 | out: |
740 | spin_unlock(&irq_mapping_update_lock); | 744 | spin_unlock(&irq_mapping_update_lock); |
741 | return irq; | 745 | return irq; |
746 | out_irq: | ||
747 | spin_unlock(&irq_mapping_update_lock); | ||
748 | xen_free_irq(irq); | ||
749 | return -1; | ||
742 | } | 750 | } |
743 | #endif | 751 | #endif |
744 | 752 | ||