[PATCH] aarch64: until MSI-X support becomes functional do not try to setup vqueue MSI-X vector

3 views
Skip to first unread message

Waldemar Kozaczuk

unread,
Jul 6, 2020, 11:54:54 PM7/6/20
to osv...@googlegroups.com, Waldemar Kozaczuk
This patch is a follow up to the previous commit b98cd8dc851282bd1b53860460831f77c63b18b3
and disables the logic to set MSI-X vector when setting up vqueues.

Refs #1088

Signed-off-by: Waldemar Kozaczuk <jwkoz...@gmail.com>
---
drivers/virtio-pci-device.cc | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/virtio-pci-device.cc b/drivers/virtio-pci-device.cc
index c7420747..297758fc 100644
--- a/drivers/virtio-pci-device.cc
+++ b/drivers/virtio-pci-device.cc
@@ -48,13 +48,13 @@ void virtio_pci_device::register_interrupt(interrupt_factory irq_factory)
// Currently MSI-X support for aach64 is stubbed (please see arch/aarch64/msi.cc)
// so until it becomes functional we register regular PCI interrupt
_irq.reset(irq_factory.create_pci_interrupt(*_dev));
-#else
+#else
if (irq_factory.register_msi_bindings && _dev->is_msix()) {
irq_factory.register_msi_bindings(_msi);
} else {
_irq.reset(irq_factory.create_pci_interrupt(*_dev));
}
-#endif
+#endif
}

virtio_legacy_pci_device::virtio_legacy_pci_device(pci::device *dev)
@@ -69,6 +69,7 @@ void virtio_legacy_pci_device::kick_queue(int queue)

void virtio_legacy_pci_device::setup_queue(vring *queue)
{
+#ifndef AARCH64_PORT_STUB
if (_dev->is_msix()) {
// Setup queue_id:entry_id 1:1 correlation...
virtio_conf_writew(VIRTIO_MSI_QUEUE_VECTOR, queue->index());
@@ -77,6 +78,7 @@ void virtio_legacy_pci_device::setup_queue(vring *queue)
return;
}
}
+#endif
// Tell host about pfn
// TODO: Yak, this is a bug in the design, on large memory we'll have PFNs > 32 bit
// Dor to notify Rusty
@@ -179,6 +181,7 @@ void virtio_modern_pci_device::setup_queue(vring *queue)
{
auto queue_index = queue->index();

+#ifndef AARCH64_PORT_STUB
if (_dev->is_msix()) {
// Setup queue_id:entry_id 1:1 correlation...
_common_cfg->virtio_conf_writew(COMMON_CFG_OFFSET_OF(queue_msix_vector), queue_index);
@@ -187,6 +190,7 @@ void virtio_modern_pci_device::setup_queue(vring *queue)
return;
}
}
+#endif

_queues_notify_offsets[queue_index] =
_common_cfg->virtio_conf_readw(COMMON_CFG_OFFSET_OF(queue_notify_off));
--
2.26.2

Commit Bot

unread,
Jul 7, 2020, 4:01:09 AM7/7/20
to osv...@googlegroups.com, Waldemar Kozaczuk
From: Waldemar Kozaczuk <jwkoz...@gmail.com>
Committer: Nadav Har'El <n...@scylladb.com>
Branch: master

aarch64: until MSI-X support becomes functional do not try to setup vqueue MSI-X vector

This patch is a follow up to the previous commit b98cd8dc851282bd1b53860460831f77c63b18b3
and disables the logic to set MSI-X vector when setting up vqueues.

Refs #1088

Signed-off-by: Waldemar Kozaczuk <jwkoz...@gmail.com>
Message-Id: <20200707035446.3...@gmail.com>

---
diff --git a/drivers/virtio-pci-device.cc b/drivers/virtio-pci-device.cc
Reply all
Reply to author
Forward
0 new messages