[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 01/13] virtio: disable ioeventfd as early as possibl
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PATCH 01/13] virtio: disable ioeventfd as early as possible |
Date: |
Fri, 21 Oct 2016 22:48:04 +0200 |
Avoid "tricking" virtio-blk-dataplane into thinking that ioeventfd will be
available when it is not. This bug has always been there, but it will break
TCG+ioeventfd=on once the dataplane code will be always used when ioeventfd=on.
Reviewed-by: Cornelia Huck <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
---
hw/s390x/virtio-ccw.c | 8 ++++----
hw/virtio/virtio-pci.c | 8 ++++----
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c
index ee136ab..31304fe 100644
--- a/hw/s390x/virtio-ccw.c
+++ b/hw/s390x/virtio-ccw.c
@@ -709,6 +709,10 @@ static void virtio_ccw_device_realize(VirtioCcwDevice
*dev, Error **errp)
sch->cssid, sch->ssid, sch->schid, sch->devno,
ccw_dev->bus_id.valid ? "user-configured" : "auto-configured");
+ if (!kvm_eventfds_enabled()) {
+ dev->flags &= ~VIRTIO_CCW_FLAG_USE_IOEVENTFD;
+ }
+
if (k->realize) {
k->realize(dev, &err);
}
@@ -1311,10 +1315,6 @@ static void virtio_ccw_device_plugged(DeviceState *d,
Error **errp)
return;
}
- if (!kvm_eventfds_enabled()) {
- dev->flags &= ~VIRTIO_CCW_FLAG_USE_IOEVENTFD;
- }
-
sch->id.cu_model = virtio_bus_get_vdev_id(&dev->bus);
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index 06831de..29896d8 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -1719,10 +1719,6 @@ static void virtio_pci_device_plugged(DeviceState *d,
Error **errp)
pci_register_bar(&proxy->pci_dev, proxy->legacy_io_bar_idx,
PCI_BASE_ADDRESS_SPACE_IO, &proxy->bar);
}
-
- if (!kvm_has_many_ioeventfds()) {
- proxy->flags &= ~VIRTIO_PCI_FLAG_USE_IOEVENTFD;
- }
}
static void virtio_pci_device_unplugged(DeviceState *d)
@@ -1751,6 +1747,10 @@ static void virtio_pci_realize(PCIDevice *pci_dev, Error
**errp)
bool pcie_port = pci_bus_is_express(pci_dev->bus) &&
!pci_bus_is_root(pci_dev->bus);
+ if (!kvm_has_many_ioeventfds()) {
+ proxy->flags &= ~VIRTIO_PCI_FLAG_USE_IOEVENTFD;
+ }
+
/*
* virtio pci bar layout used by default.
* subclasses can re-arrange things if needed.
--
1.8.3.1
- [Qemu-devel] [PATCH v3 00/13] virtio: cleanup ioeventfd start/stop, Paolo Bonzini, 2016/10/21
- [Qemu-devel] [PATCH 02/13] virtio: move ioeventfd_disabled flag to VirtioBusState, Paolo Bonzini, 2016/10/21
- [Qemu-devel] [PATCH 03/13] virtio: move ioeventfd_started flag to VirtioBusState, Paolo Bonzini, 2016/10/21
- [Qemu-devel] [PATCH 01/13] virtio: disable ioeventfd as early as possible,
Paolo Bonzini <=
- [Qemu-devel] [PATCH 05/13] virtio: introduce virtio_device_ioeventfd_enabled, Paolo Bonzini, 2016/10/21
- [Qemu-devel] [PATCH 04/13] virtio: add start_ioeventfd and stop_ioeventfd to VirtioDeviceClass, Paolo Bonzini, 2016/10/21
- [Qemu-devel] [PATCH 08/13] Revert "virtio: Introduce virtio_add_queue_aio", Paolo Bonzini, 2016/10/21
- [Qemu-devel] [PATCH 06/13] virtio-blk: always use dataplane path if ioeventfd is active, Paolo Bonzini, 2016/10/21
- [Qemu-devel] [PATCH 07/13] virtio-scsi: always use dataplane path if ioeventfd is active, Paolo Bonzini, 2016/10/21
- [Qemu-devel] [PATCH 09/13] virtio: remove set_handler argument from set_host_notifier_internal, Paolo Bonzini, 2016/10/21
- [Qemu-devel] [PATCH 11/13] virtio: use virtio_bus_set_host_notifier to start/stop ioeventfd, Paolo Bonzini, 2016/10/21
- [Qemu-devel] [PATCH 10/13] virtio: remove ioeventfd_disabled altogether, Paolo Bonzini, 2016/10/21
- [Qemu-devel] [PATCH 13/13] virtio: inline set_host_notifier_internal, Paolo Bonzini, 2016/10/21