]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
pci/xen: Use xen_allocate_pirq_msi instead of xen_allocate_pirq
authorKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Wed, 16 Feb 2011 18:43:04 +0000 (13:43 -0500)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Fri, 18 Feb 2011 14:26:37 +0000 (09:26 -0500)
xen_allocate_pirq -> xen_map_pirq_gsi -> PHYSDEVOP_alloc_irq_vector IFF
xen_initial_domain() in addition to the kernel side book-keeping side of
things (set chip and handler, update irq_info etc) whereas
xen_allocate_pirq_msi just does the kernel book keeping.

Also xen_allocate_pirq allocates an IRQ in the 1-1 GSI space whereas
xen_allocate_pirq_msi allocates a dynamic one in the >GSI IRQ space.

All of this is uneccessary as this code path is only executed
when we run as a domU PV guest with an MSI/MSI-X PCI card passed in.
Hence we can jump straight to allocating an dynamic IRQ (and
binding it to the proper PIRQ) and skip the rest.

In short: this change is a cosmetic one.

Reviewed-by: Ian Campbell <Ian.Campbell@citrix.com>
Reviewed-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
arch/x86/pci/xen.c

index 25cd4a07d09f78cbe850733f0d2d36d98fe5d176..6432f751ee4fd54b35b6e6a4d49c5601ab8e83c3 100644 (file)
@@ -157,14 +157,14 @@ static int xen_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
                goto error;
        i = 0;
        list_for_each_entry(msidesc, &dev->msi_list, list) {
-               irq = xen_allocate_pirq(v[i], 0, /* not sharable */
+               xen_allocate_pirq_msi(
                        (type == PCI_CAP_ID_MSIX) ?
-                       "pcifront-msi-x" : "pcifront-msi");
+                       "pcifront-msi-x" : "pcifront-msi",
+                       &irq, &v[i], XEN_ALLOC_IRQ);
                if (irq < 0) {
                        ret = -1;
                        goto free;
                }
-
                ret = set_irq_msi(irq, msidesc);
                if (ret)
                        goto error_while;