Commit f17429e5 authored by Stefan Hajnoczi's avatar Stefan Hajnoczi Committed by Michael S. Tsirkin
Browse files

libqos: make the virtio-pci BAR index configurable



The Legacy virtio-pci interface always uses BAR 0.  VIRTIO 1.0 may need
to use a different BAR index, so make it configurable.

Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: default avatarThomas Huth <thuth@redhat.com>
Reviewed-by: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20191023100425.12168-15-stefanha@redhat.com>
Reviewed-by: default avatarMichael S. Tsirkin <mst@redhat.com>
Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
parent e56536bc
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -310,7 +310,7 @@ static const QVirtioPCIMSIXOps qvirtio_pci_msix_ops_legacy = {
void qvirtio_pci_device_enable(QVirtioPCIDevice *d)
{
    qpci_device_enable(d->pdev);
    d->bar = qpci_iomap(d->pdev, 0, NULL);
    d->bar = qpci_iomap(d->pdev, d->bar_idx, NULL);
}

void qvirtio_pci_device_disable(QVirtioPCIDevice *d)
@@ -400,6 +400,7 @@ static void qvirtio_pci_init_from_pcidev(QVirtioPCIDevice *dev, QPCIDevice *pci_
{
    dev->pdev = pci_dev;
    dev->vdev.device_type = qpci_config_readw(pci_dev, PCI_SUBSYSTEM_ID);
    dev->bar_idx = 0;

    dev->config_msix_entry = -1;
    dev->msix_ops = &qvirtio_pci_msix_ops_legacy;
+2 −0
Original line number Diff line number Diff line
@@ -25,6 +25,8 @@ typedef struct QVirtioPCIDevice {
    uint16_t config_msix_entry;
    uint64_t config_msix_addr;
    uint32_t config_msix_data;

    int bar_idx;
} QVirtioPCIDevice;

struct QVirtioPCIMSIXOps {