[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 2/2] virtio: verify that legacy support is not accidentally on
From: |
Cornelia Huck |
Subject: |
[PATCH 2/2] virtio: verify that legacy support is not accidentally on |
Date: |
Tue, 7 Jul 2020 12:54:46 +0200 |
If a virtio device does not have legacy support, make sure that
it is actually off, and bail out if not.
For virtio-pci, this means that any device without legacy support
that has been specified to modern-only (or that has been forced
to it) will work.
For virtio-ccw, this duplicates the check that is currently done
prior to realization for any device that explicitly specified no
support for legacy.
This catches devices that have not been fenced properly.
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
---
hw/s390x/virtio-ccw.c | 6 ++++++
hw/virtio/virtio-pci.c | 4 ++++
2 files changed, 10 insertions(+)
diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c
index 3c988a000b5b..0e602702971b 100644
--- a/hw/s390x/virtio-ccw.c
+++ b/hw/s390x/virtio-ccw.c
@@ -1121,6 +1121,12 @@ static void virtio_ccw_device_plugged(DeviceState *d,
Error **errp)
dev->max_rev = 0;
}
+ if (!virtio_ccw_rev_max(dev) && !virtio_legacy_allowed(vdev)) {
+ error_setg(errp, "Invalid value of property max_rev "
+ "(is %d expected >= 1)", virtio_ccw_rev_max(dev));
+ return;
+ }
+
if (virtio_get_num_queues(vdev) > VIRTIO_QUEUE_MAX) {
error_setg(errp, "The number of virtqueues %d "
"exceeds virtio limit %d", n,
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
index 7bc8c1c056e9..d4c4128ea507 100644
--- a/hw/virtio/virtio-pci.c
+++ b/hw/virtio/virtio-pci.c
@@ -1569,6 +1569,10 @@ static void virtio_pci_device_plugged(DeviceState *d,
Error **errp)
}
if (legacy) {
+ if (!virtio_legacy_allowed(vdev)) {
+ error_setg(errp, "device is modern-only, use disable-legacy=on");
+ return;
+ }
if (virtio_host_has_feature(vdev, VIRTIO_F_IOMMU_PLATFORM)) {
error_setg(errp, "VIRTIO_F_IOMMU_PLATFORM was supported by"
" neither legacy nor transitional device");
--
2.25.4
- [PATCH 0/2] virtio: non-legacy device handling, Cornelia Huck, 2020/07/07
- [PATCH 1/2] virtio: list legacy-capable devices, Cornelia Huck, 2020/07/07
- [PATCH 2/2] virtio: verify that legacy support is not accidentally on,
Cornelia Huck <=
- Re: [PATCH 0/2] virtio: non-legacy device handling, Cornelia Huck, 2020/07/16
- Re: [PATCH 0/2] virtio: non-legacy device handling, David Hildenbrand, 2020/07/20
- Re: [PATCH 0/2] virtio: non-legacy device handling, Michael S. Tsirkin, 2020/07/20
- Re: [PATCH 0/2] virtio: non-legacy device handling, David Hildenbrand, 2020/07/20
- Re: [PATCH 0/2] virtio: non-legacy device handling, Cornelia Huck, 2020/07/23
- Re: [PATCH 0/2] virtio: non-legacy device handling, David Hildenbrand, 2020/07/23
- Re: [PATCH 0/2] virtio: non-legacy device handling, Cornelia Huck, 2020/07/23
- Re: [PATCH 0/2] virtio: non-legacy device handling, Michael S. Tsirkin, 2020/07/23
Re: [PATCH 0/2] virtio: non-legacy device handling, Halil Pasic, 2020/07/20