mirror of
https://github.com/torvalds/linux.git
synced 2024-10-31 17:21:49 +00:00
xen: events: refactor xen_create_msi_irq slightly
Calling PHYSDEVOP_map_pirq earlier simplifies error handling and starts to make the tail end of this function look 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>
This commit is contained in:
parent
bf480d952b
commit
8135591e90
@ -716,6 +716,12 @@ int xen_create_msi_irq(struct pci_dev *dev, struct msi_desc *msidesc, int type)
|
||||
map_irq.entry_nr = msidesc->msi_attrib.entry_nr;
|
||||
}
|
||||
|
||||
rc = HYPERVISOR_physdev_op(PHYSDEVOP_map_pirq, &map_irq);
|
||||
if (rc) {
|
||||
dev_warn(&dev->dev, "xen map irq failed %d\n", rc);
|
||||
goto out;
|
||||
}
|
||||
|
||||
spin_lock(&irq_mapping_update_lock);
|
||||
|
||||
irq = xen_allocate_irq_dynamic();
|
||||
@ -723,15 +729,6 @@ int xen_create_msi_irq(struct pci_dev *dev, struct msi_desc *msidesc, int type)
|
||||
if (irq == -1)
|
||||
goto out;
|
||||
|
||||
rc = HYPERVISOR_physdev_op(PHYSDEVOP_map_pirq, &map_irq);
|
||||
if (rc) {
|
||||
printk(KERN_WARNING "xen map irq failed %d\n", rc);
|
||||
|
||||
xen_free_irq(irq);
|
||||
|
||||
irq = -1;
|
||||
goto out;
|
||||
}
|
||||
irq_info[irq] = mk_pirq_info(0, map_irq.pirq, 0, map_irq.index);
|
||||
|
||||
set_irq_chip_and_handler_name(irq, &xen_pirq_chip,
|
||||
|
Loading…
Reference in New Issue
Block a user