Patchwork [1/6] pci: Add INTx no-route option

login
register
mail settings
Submitter Alex Williamson
Date Oct. 2, 2012, 7:21 p.m.
Message ID <20121002192139.31100.95177.stgit@bling.home>
Download mbox | patch
Permalink /patch/188635/
State New
Headers show

Comments

Alex Williamson - Oct. 2, 2012, 7:21 p.m.
pci_device_route_intx_to_irq() has no probe capability.  vfio-pci
can make use of KVM acceleration if this information is available,
but can still operate without it.  Make it non-fatal to call this
on a platform or chipset where it hasn't been implemented yet.

Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
---

 hw/pci.c |    8 ++++++--
 hw/pci.h |    1 +
 2 files changed, 7 insertions(+), 2 deletions(-)

Patch

diff --git a/hw/pci.c b/hw/pci.c
index f855cf3..9cb0ad4 100644
--- a/hw/pci.c
+++ b/hw/pci.c
@@ -1094,8 +1094,12 @@  PCIINTxRoute pci_device_route_intx_to_irq(PCIDevice *dev, int pin)
          pin = bus->map_irq(dev, pin);
          dev = bus->parent_dev;
     } while (dev);
-    assert(bus->route_intx_to_irq);
-    return bus->route_intx_to_irq(bus->irq_opaque, pin);
+
+    if (bus->route_intx_to_irq) {
+        return bus->route_intx_to_irq(bus->irq_opaque, pin);
+    }
+
+    return (PCIINTxRoute) { PCI_INTX_NOROUTE, -1 };
 }
 
 void pci_bus_fire_intx_routing_notifier(PCIBus *bus)
diff --git a/hw/pci.h b/hw/pci.h
index 4b6ab3d..ed1a372 100644
--- a/hw/pci.h
+++ b/hw/pci.h
@@ -146,6 +146,7 @@  typedef struct PCIINTxRoute {
         PCI_INTX_ENABLED,
         PCI_INTX_INVERTED,
         PCI_INTX_DISABLED,
+        PCI_INTX_NOROUTE,
     } mode;
     int irq;
 } PCIINTxRoute;