Skip to content

Commit

Permalink
xen: events: refactor xen_create_msi_irq slightly
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Ian Campbell authored and Konrad Rzeszutek Wilk committed Mar 10, 2011
1 parent bf480d9 commit 8135591
Showing 1 changed file with 6 additions and 9 deletions.
15 changes: 6 additions & 9 deletions drivers/xen/events.c
Original file line number Diff line number Diff line change
Expand Up @@ -716,22 +716,19 @@ 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();

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,
Expand Down

0 comments on commit 8135591

Please sign in to comment.