* Mon Oct 05 2020 Danilo Cesar Lemes de Paula <ddepaula@redhat.com> - 5.1.0-12.el8_3
- kvm-virtio-skip-legacy-support-check-on-machine-types-le.patch [bz#1868449] - kvm-vhost-vsock-pci-force-virtio-version-1.patch [bz#1868449] - kvm-vhost-user-vsock-pci-force-virtio-version-1.patch [bz#1868449] - kvm-vhost-vsock-ccw-force-virtio-version-1.patch [bz#1868449] - Resolves: bz#1868449 (vhost_vsock error: device is modern-only, use disable-legacy=on)
This commit is contained in:
parent
6fa88dd103
commit
a7bf1d2d7c
71
kvm-vhost-user-vsock-pci-force-virtio-version-1.patch
Normal file
71
kvm-vhost-user-vsock-pci-force-virtio-version-1.patch
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
From b969c169c82c3022949a7717d6f5745fbdc579bc Mon Sep 17 00:00:00 2001
|
||||||
|
From: Stefano Garzarella <sgarzare@redhat.com>
|
||||||
|
Date: Tue, 29 Sep 2020 12:41:42 -0400
|
||||||
|
Subject: [PATCH 3/4] vhost-user-vsock-pci: force virtio version 1
|
||||||
|
|
||||||
|
RH-Author: Stefano Garzarella <sgarzare@redhat.com>
|
||||||
|
Message-id: <20200929124143.41520-4-sgarzare@redhat.com>
|
||||||
|
Patchwork-id: 98513
|
||||||
|
O-Subject: [RHEL-AV-8.3.0 qemu-kvm PATCH 3/4] vhost-user-vsock-pci: force virtio version 1
|
||||||
|
Bugzilla: 1868449
|
||||||
|
RH-Acked-by: Danilo de Paula <ddepaula@redhat.com>
|
||||||
|
RH-Acked-by: Michael S. Tsirkin <mst@redhat.com>
|
||||||
|
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||||
|
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||||
|
|
||||||
|
Commit 9b3a35ec82 ("virtio: verify that legacy support is not
|
||||||
|
accidentally on") added a safety check that requires to set
|
||||||
|
'disable-legacy=on' on vhost-user-vsock-pci device:
|
||||||
|
|
||||||
|
$ ./qemu-system-x86_64 ... \
|
||||||
|
-chardev socket,id=char0,reconnect=0,path=/tmp/vhost4.socket \
|
||||||
|
-device vhost-user-vsock-pci,chardev=char0
|
||||||
|
qemu-system-x86_64: -device vhost-user-vsock-pci,chardev=char0:
|
||||||
|
device is modern-only, use disable-legacy=on
|
||||||
|
|
||||||
|
virtio-vsock was introduced after the release of VIRTIO 1.0
|
||||||
|
specifications, so it should be 'modern-only'.
|
||||||
|
|
||||||
|
This patch forces virtio version 1 and removes the 'transitional_name'
|
||||||
|
property, as done for vhost-vsock-pci, removing the need to specify
|
||||||
|
'disable-legacy=on' on vhost-user-vsock-pci device.
|
||||||
|
|
||||||
|
Cc: qemu-stable@nongnu.org
|
||||||
|
Suggested-by: Cornelia Huck <cohuck@redhat.com>
|
||||||
|
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
|
||||||
|
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
|
||||||
|
Message-Id: <20200921122506.82515-4-sgarzare@redhat.com>
|
||||||
|
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
|
||||||
|
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||||
|
(cherry picked from commit 27eda699f59d430c33fc054a36a17251992e70dc)
|
||||||
|
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
|
||||||
|
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
|
||||||
|
---
|
||||||
|
hw/virtio/vhost-user-vsock-pci.c | 4 +++-
|
||||||
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/hw/virtio/vhost-user-vsock-pci.c b/hw/virtio/vhost-user-vsock-pci.c
|
||||||
|
index f4cf95873d3..492df6418a4 100644
|
||||||
|
--- a/hw/virtio/vhost-user-vsock-pci.c
|
||||||
|
+++ b/hw/virtio/vhost-user-vsock-pci.c
|
||||||
|
@@ -40,6 +40,9 @@ static void vhost_user_vsock_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
|
||||||
|
VHostUserVSockPCI *dev = VHOST_USER_VSOCK_PCI(vpci_dev);
|
||||||
|
DeviceState *vdev = DEVICE(&dev->vdev);
|
||||||
|
|
||||||
|
+ /* unlike vhost-vsock, we do not need to care about pre-5.1 compat */
|
||||||
|
+ virtio_pci_force_virtio_1(vpci_dev);
|
||||||
|
+
|
||||||
|
qdev_realize(vdev, BUS(&vpci_dev->bus), errp);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -68,7 +71,6 @@ static void vhost_user_vsock_pci_instance_init(Object *obj)
|
||||||
|
static const VirtioPCIDeviceTypeInfo vhost_user_vsock_pci_info = {
|
||||||
|
.base_name = TYPE_VHOST_USER_VSOCK_PCI,
|
||||||
|
.generic_name = "vhost-user-vsock-pci",
|
||||||
|
- .transitional_name = "vhost-user-vsock-pci-transitional",
|
||||||
|
.non_transitional_name = "vhost-user-vsock-pci-non-transitional",
|
||||||
|
.instance_size = sizeof(VHostUserVSockPCI),
|
||||||
|
.instance_init = vhost_user_vsock_pci_instance_init,
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
66
kvm-vhost-vsock-ccw-force-virtio-version-1.patch
Normal file
66
kvm-vhost-vsock-ccw-force-virtio-version-1.patch
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
From 41467dab8f8e312bbb13a47454724e20c4b08d60 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Stefano Garzarella <sgarzare@redhat.com>
|
||||||
|
Date: Tue, 29 Sep 2020 12:41:43 -0400
|
||||||
|
Subject: [PATCH 4/4] vhost-vsock-ccw: force virtio version 1
|
||||||
|
|
||||||
|
RH-Author: Stefano Garzarella <sgarzare@redhat.com>
|
||||||
|
Message-id: <20200929124143.41520-5-sgarzare@redhat.com>
|
||||||
|
Patchwork-id: 98514
|
||||||
|
O-Subject: [RHEL-AV-8.3.0 qemu-kvm PATCH 4/4] vhost-vsock-ccw: force virtio version 1
|
||||||
|
Bugzilla: 1868449
|
||||||
|
RH-Acked-by: Danilo de Paula <ddepaula@redhat.com>
|
||||||
|
RH-Acked-by: Michael S. Tsirkin <mst@redhat.com>
|
||||||
|
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||||
|
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||||
|
|
||||||
|
virtio-vsock was introduced after the release of VIRTIO 1.0
|
||||||
|
specifications, so it should be 'modern-only'.
|
||||||
|
|
||||||
|
This patch forces virtio version 1 as done for vhost-vsock-pci.
|
||||||
|
|
||||||
|
To avoid migration issues, we force virtio version 1 only when
|
||||||
|
legacy check is enabled in the new machine types (>= 5.1).
|
||||||
|
|
||||||
|
Cc: qemu-stable@nongnu.org
|
||||||
|
Suggested-by: Cornelia Huck <cohuck@redhat.com>
|
||||||
|
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
|
||||||
|
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
|
||||||
|
Message-Id: <20200921122506.82515-5-sgarzare@redhat.com>
|
||||||
|
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
|
||||||
|
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||||
|
(cherry picked from commit a6704a34cf02add13964149e0de6453ae62bd9db)
|
||||||
|
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
|
||||||
|
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
|
||||||
|
---
|
||||||
|
hw/s390x/vhost-vsock-ccw.c | 12 ++++++++++++
|
||||||
|
1 file changed, 12 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/hw/s390x/vhost-vsock-ccw.c b/hw/s390x/vhost-vsock-ccw.c
|
||||||
|
index 0822ecca893..246416a8f96 100644
|
||||||
|
--- a/hw/s390x/vhost-vsock-ccw.c
|
||||||
|
+++ b/hw/s390x/vhost-vsock-ccw.c
|
||||||
|
@@ -40,9 +40,21 @@ static void vhost_vsock_ccw_class_init(ObjectClass *klass, void *data)
|
||||||
|
static void vhost_vsock_ccw_instance_init(Object *obj)
|
||||||
|
{
|
||||||
|
VHostVSockCCWState *dev = VHOST_VSOCK_CCW(obj);
|
||||||
|
+ VirtioCcwDevice *ccw_dev = VIRTIO_CCW_DEVICE(obj);
|
||||||
|
+ VirtIODevice *virtio_dev;
|
||||||
|
|
||||||
|
virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
|
||||||
|
TYPE_VHOST_VSOCK);
|
||||||
|
+
|
||||||
|
+ virtio_dev = VIRTIO_DEVICE(&dev->vdev);
|
||||||
|
+
|
||||||
|
+ /*
|
||||||
|
+ * To avoid migration issues, we force virtio version 1 only when
|
||||||
|
+ * legacy check is enabled in the new machine types (>= 5.1).
|
||||||
|
+ */
|
||||||
|
+ if (!virtio_legacy_check_disabled(virtio_dev)) {
|
||||||
|
+ ccw_dev->force_revision_1 = true;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
static const TypeInfo vhost_vsock_ccw_info = {
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
87
kvm-vhost-vsock-pci-force-virtio-version-1.patch
Normal file
87
kvm-vhost-vsock-pci-force-virtio-version-1.patch
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
From 7153f4862bf6c4396412a8ba0d7db45ae087a337 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Stefano Garzarella <sgarzare@redhat.com>
|
||||||
|
Date: Tue, 29 Sep 2020 12:41:41 -0400
|
||||||
|
Subject: [PATCH 2/4] vhost-vsock-pci: force virtio version 1
|
||||||
|
|
||||||
|
RH-Author: Stefano Garzarella <sgarzare@redhat.com>
|
||||||
|
Message-id: <20200929124143.41520-3-sgarzare@redhat.com>
|
||||||
|
Patchwork-id: 98511
|
||||||
|
O-Subject: [RHEL-AV-8.3.0 qemu-kvm PATCH 2/4] vhost-vsock-pci: force virtio version 1
|
||||||
|
Bugzilla: 1868449
|
||||||
|
RH-Acked-by: Danilo de Paula <ddepaula@redhat.com>
|
||||||
|
RH-Acked-by: Michael S. Tsirkin <mst@redhat.com>
|
||||||
|
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||||
|
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||||
|
|
||||||
|
Commit 9b3a35ec82 ("virtio: verify that legacy support is not
|
||||||
|
accidentally on") added a safety check that requires to set
|
||||||
|
'disable-legacy=on' on vhost-vsock-pci device:
|
||||||
|
|
||||||
|
$ ./qemu-system-x86_64 ... -device vhost-vsock-pci,guest-cid=5
|
||||||
|
qemu-system-x86_64: -device vhost-vsock-pci,guest-cid=5:
|
||||||
|
device is modern-only, use disable-legacy=on
|
||||||
|
|
||||||
|
virtio-vsock was introduced after the release of VIRTIO 1.0
|
||||||
|
specifications, so it should be 'modern-only'.
|
||||||
|
In addition Cornelia verified that forcing a legacy mode on
|
||||||
|
vhost-vsock-pci device using x86-64 host and s390x guest, so with
|
||||||
|
different endianness, produces strange behaviours.
|
||||||
|
|
||||||
|
This patch forces virtio version 1 and removes the 'transitional_name'
|
||||||
|
property removing the need to specify 'disable-legacy=on' on
|
||||||
|
vhost-vsock-pci device.
|
||||||
|
|
||||||
|
To avoid migration issues, we force virtio version 1 only when
|
||||||
|
legacy check is enabled in the new machine types (>= 5.1).
|
||||||
|
|
||||||
|
As the transitional device name is not commonly used, we do not
|
||||||
|
provide compatibility handling for it.
|
||||||
|
|
||||||
|
Cc: qemu-stable@nongnu.org
|
||||||
|
Reported-by: Qian Cai <caiqian@redhat.com>
|
||||||
|
Reported-by: Qinghua Cheng <qcheng@redhat.com>
|
||||||
|
Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1868449
|
||||||
|
Suggested-by: Cornelia Huck <cohuck@redhat.com>
|
||||||
|
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
|
||||||
|
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
|
||||||
|
Message-Id: <20200921122506.82515-3-sgarzare@redhat.com>
|
||||||
|
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
|
||||||
|
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||||
|
(cherry picked from commit 6209070503989cf4f28549f228989419d4f0b236)
|
||||||
|
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
|
||||||
|
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
|
||||||
|
---
|
||||||
|
hw/virtio/vhost-vsock-pci.c | 10 +++++++++-
|
||||||
|
1 file changed, 9 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/hw/virtio/vhost-vsock-pci.c b/hw/virtio/vhost-vsock-pci.c
|
||||||
|
index a815278e69c..f11a38292fe 100644
|
||||||
|
--- a/hw/virtio/vhost-vsock-pci.c
|
||||||
|
+++ b/hw/virtio/vhost-vsock-pci.c
|
||||||
|
@@ -43,6 +43,15 @@ static void vhost_vsock_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
|
||||||
|
{
|
||||||
|
VHostVSockPCI *dev = VHOST_VSOCK_PCI(vpci_dev);
|
||||||
|
DeviceState *vdev = DEVICE(&dev->vdev);
|
||||||
|
+ VirtIODevice *virtio_dev = VIRTIO_DEVICE(vdev);
|
||||||
|
+
|
||||||
|
+ /*
|
||||||
|
+ * To avoid migration issues, we force virtio version 1 only when
|
||||||
|
+ * legacy check is enabled in the new machine types (>= 5.1).
|
||||||
|
+ */
|
||||||
|
+ if (!virtio_legacy_check_disabled(virtio_dev)) {
|
||||||
|
+ virtio_pci_force_virtio_1(vpci_dev);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
qdev_realize(vdev, BUS(&vpci_dev->bus), errp);
|
||||||
|
}
|
||||||
|
@@ -72,7 +81,6 @@ static void vhost_vsock_pci_instance_init(Object *obj)
|
||||||
|
static const VirtioPCIDeviceTypeInfo vhost_vsock_pci_info = {
|
||||||
|
.base_name = TYPE_VHOST_VSOCK_PCI,
|
||||||
|
.generic_name = "vhost-vsock-pci",
|
||||||
|
- .transitional_name = "vhost-vsock-pci-transitional",
|
||||||
|
.non_transitional_name = "vhost-vsock-pci-non-transitional",
|
||||||
|
.instance_size = sizeof(VHostVSockPCI),
|
||||||
|
.instance_init = vhost_vsock_pci_instance_init,
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
169
kvm-virtio-skip-legacy-support-check-on-machine-types-le.patch
Normal file
169
kvm-virtio-skip-legacy-support-check-on-machine-types-le.patch
Normal file
@ -0,0 +1,169 @@
|
|||||||
|
From 0e84dffa20452130768c81390d9df56fab8ba260 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Stefano Garzarella <sgarzare@redhat.com>
|
||||||
|
Date: Tue, 29 Sep 2020 12:41:40 -0400
|
||||||
|
Subject: [PATCH 1/4] virtio: skip legacy support check on machine types less
|
||||||
|
than 5.1
|
||||||
|
|
||||||
|
RH-Author: Stefano Garzarella <sgarzare@redhat.com>
|
||||||
|
Message-id: <20200929124143.41520-2-sgarzare@redhat.com>
|
||||||
|
Patchwork-id: 98512
|
||||||
|
O-Subject: [RHEL-AV-8.3.0 qemu-kvm PATCH 1/4] virtio: skip legacy support check on machine types less than 5.1
|
||||||
|
Bugzilla: 1868449
|
||||||
|
RH-Acked-by: Danilo de Paula <ddepaula@redhat.com>
|
||||||
|
RH-Acked-by: Michael S. Tsirkin <mst@redhat.com>
|
||||||
|
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||||
|
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
||||||
|
|
||||||
|
Commit 9b3a35ec82 ("virtio: verify that legacy support is not accidentally
|
||||||
|
on") added a check that returns an error if legacy support is on, but the
|
||||||
|
device does not support legacy.
|
||||||
|
|
||||||
|
Unfortunately some devices were wrongly declared legacy capable even if
|
||||||
|
they were not (e.g vhost-vsock).
|
||||||
|
|
||||||
|
To avoid migration issues, we add a virtio-device property
|
||||||
|
(x-disable-legacy-check) to skip the legacy error, printing a warning
|
||||||
|
instead, for machine types < 5.1.
|
||||||
|
|
||||||
|
Cc: qemu-stable@nongnu.org
|
||||||
|
Fixes: 9b3a35ec82 ("virtio: verify that legacy support is not accidentally on")
|
||||||
|
Suggested-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||||
|
Suggested-by: Cornelia Huck <cohuck@redhat.com>
|
||||||
|
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
|
||||||
|
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
|
||||||
|
Message-Id: <20200921122506.82515-2-sgarzare@redhat.com>
|
||||||
|
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
|
||||||
|
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||||
|
|
||||||
|
(cherry picked from commit d55f518248f263bb8d0852f98e47102ea09d4f89)
|
||||||
|
Added 'x-disable-legacy-check' in hw_compat_rhel_8_2
|
||||||
|
|
||||||
|
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
|
||||||
|
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
|
||||||
|
---
|
||||||
|
hw/core/machine.c | 3 +++
|
||||||
|
hw/s390x/virtio-ccw.c | 15 ++++++++++++---
|
||||||
|
hw/virtio/virtio-pci.c | 14 ++++++++++++--
|
||||||
|
hw/virtio/virtio.c | 7 +++++++
|
||||||
|
include/hw/virtio/virtio.h | 2 ++
|
||||||
|
5 files changed, 36 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/hw/core/machine.c b/hw/core/machine.c
|
||||||
|
index 10fa9b8c756..86ce3af71e4 100644
|
||||||
|
--- a/hw/core/machine.c
|
||||||
|
+++ b/hw/core/machine.c
|
||||||
|
@@ -66,6 +66,8 @@ GlobalProperty hw_compat_rhel_8_2[] = {
|
||||||
|
{ "vmport", "x-report-vmx-type", "off" },
|
||||||
|
/* hw_compat_rhel_8_2 from hw_compat_5_0 */
|
||||||
|
{ "vmport", "x-cmds-v2", "off" },
|
||||||
|
+ /* hw_compat_rhel_8_2 from hw_compat_5_0 */
|
||||||
|
+ { "virtio-device", "x-disable-legacy-check", "true" },
|
||||||
|
};
|
||||||
|
const size_t hw_compat_rhel_8_2_len = G_N_ELEMENTS(hw_compat_rhel_8_2);
|
||||||
|
|
||||||
|
@@ -246,6 +248,7 @@ GlobalProperty hw_compat_5_0[] = {
|
||||||
|
{ "vmport", "x-signal-unsupported-cmd", "off" },
|
||||||
|
{ "vmport", "x-report-vmx-type", "off" },
|
||||||
|
{ "vmport", "x-cmds-v2", "off" },
|
||||||
|
+ { "virtio-device", "x-disable-legacy-check", "true" },
|
||||||
|
};
|
||||||
|
const size_t hw_compat_5_0_len = G_N_ELEMENTS(hw_compat_5_0);
|
||||||
|
|
||||||
|
diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c
|
||||||
|
index 0e602702971..3dfc93d4f6f 100644
|
||||||
|
--- a/hw/s390x/virtio-ccw.c
|
||||||
|
+++ b/hw/s390x/virtio-ccw.c
|
||||||
|
@@ -1122,9 +1122,18 @@ static void virtio_ccw_device_plugged(DeviceState *d, Error **errp)
|
||||||
|
}
|
||||||
|
|
||||||
|
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;
|
||||||
|
+ /*
|
||||||
|
+ * To avoid migration issues, we allow legacy mode when legacy
|
||||||
|
+ * check is disabled in the old machine types (< 5.1).
|
||||||
|
+ */
|
||||||
|
+ if (virtio_legacy_check_disabled(vdev)) {
|
||||||
|
+ warn_report("device requires revision >= 1, but for backward "
|
||||||
|
+ "compatibility max_revision=0 is allowed");
|
||||||
|
+ } else {
|
||||||
|
+ 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) {
|
||||||
|
diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c
|
||||||
|
index ccdf54e81c7..4211565f2c9 100644
|
||||||
|
--- a/hw/virtio/virtio-pci.c
|
||||||
|
+++ b/hw/virtio/virtio-pci.c
|
||||||
|
@@ -1596,8 +1596,18 @@ 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;
|
||||||
|
+ /*
|
||||||
|
+ * To avoid migration issues, we allow legacy mode when legacy
|
||||||
|
+ * check is disabled in the old machine types (< 5.1).
|
||||||
|
+ */
|
||||||
|
+ if (virtio_legacy_check_disabled(vdev)) {
|
||||||
|
+ warn_report("device is modern-only, but for backward "
|
||||||
|
+ "compatibility legacy is allowed");
|
||||||
|
+ } else {
|
||||||
|
+ 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"
|
||||||
|
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
|
||||||
|
index e9830252176..b85277da673 100644
|
||||||
|
--- a/hw/virtio/virtio.c
|
||||||
|
+++ b/hw/virtio/virtio.c
|
||||||
|
@@ -3304,6 +3304,11 @@ bool virtio_legacy_allowed(VirtIODevice *vdev)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+bool virtio_legacy_check_disabled(VirtIODevice *vdev)
|
||||||
|
+{
|
||||||
|
+ return vdev->disable_legacy_check;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
hwaddr virtio_queue_get_desc_addr(VirtIODevice *vdev, int n)
|
||||||
|
{
|
||||||
|
return vdev->vq[n].vring.desc;
|
||||||
|
@@ -3713,6 +3718,8 @@ static Property virtio_properties[] = {
|
||||||
|
DEFINE_VIRTIO_COMMON_FEATURES(VirtIODevice, host_features),
|
||||||
|
DEFINE_PROP_BOOL("use-started", VirtIODevice, use_started, true),
|
||||||
|
DEFINE_PROP_BOOL("use-disabled-flag", VirtIODevice, use_disabled_flag, true),
|
||||||
|
+ DEFINE_PROP_BOOL("x-disable-legacy-check", VirtIODevice,
|
||||||
|
+ disable_legacy_check, false),
|
||||||
|
DEFINE_PROP_END_OF_LIST(),
|
||||||
|
};
|
||||||
|
|
||||||
|
diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h
|
||||||
|
index e424df12cf6..c50f5a9dfe8 100644
|
||||||
|
--- a/include/hw/virtio/virtio.h
|
||||||
|
+++ b/include/hw/virtio/virtio.h
|
||||||
|
@@ -105,6 +105,7 @@ struct VirtIODevice
|
||||||
|
bool use_started;
|
||||||
|
bool started;
|
||||||
|
bool start_on_kick; /* when virtio 1.0 feature has not been negotiated */
|
||||||
|
+ bool disable_legacy_check;
|
||||||
|
VMChangeStateEntry *vmstate;
|
||||||
|
char *bus_name;
|
||||||
|
uint8_t device_endian;
|
||||||
|
@@ -398,5 +399,6 @@ static inline bool virtio_device_disabled(VirtIODevice *vdev)
|
||||||
|
}
|
||||||
|
|
||||||
|
bool virtio_legacy_allowed(VirtIODevice *vdev);
|
||||||
|
+bool virtio_legacy_check_disabled(VirtIODevice *vdev);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
@ -69,7 +69,7 @@ Obsoletes: %1-rhev
|
|||||||
Summary: QEMU is a machine emulator and virtualizer
|
Summary: QEMU is a machine emulator and virtualizer
|
||||||
Name: qemu-kvm
|
Name: qemu-kvm
|
||||||
Version: 5.1.0
|
Version: 5.1.0
|
||||||
Release: 11%{?dist}
|
Release: 12%{?dist}
|
||||||
# Epoch because we pushed a qemu-1.0 package. AIUI this can't ever be dropped
|
# Epoch because we pushed a qemu-1.0 package. AIUI this can't ever be dropped
|
||||||
Epoch: 15
|
Epoch: 15
|
||||||
License: GPLv2 and GPLv2+ and CC-BY
|
License: GPLv2 and GPLv2+ and CC-BY
|
||||||
@ -199,6 +199,14 @@ Patch64: kvm-hw-nvram-fw_cfg-fix-FWCfgDataGeneratorClass-get_data.patch
|
|||||||
Patch65: kvm-qemu-img-Support-bitmap-merge-into-backing-image.patch
|
Patch65: kvm-qemu-img-Support-bitmap-merge-into-backing-image.patch
|
||||||
# For bz#1874004 - Live migration performance is poor during guest installation process on power host
|
# For bz#1874004 - Live migration performance is poor during guest installation process on power host
|
||||||
Patch66: kvm-migration-increase-max-bandwidth-to-128-MiB-s-1-Gib-.patch
|
Patch66: kvm-migration-increase-max-bandwidth-to-128-MiB-s-1-Gib-.patch
|
||||||
|
# For bz#1868449 - vhost_vsock error: device is modern-only, use disable-legacy=on
|
||||||
|
Patch67: kvm-virtio-skip-legacy-support-check-on-machine-types-le.patch
|
||||||
|
# For bz#1868449 - vhost_vsock error: device is modern-only, use disable-legacy=on
|
||||||
|
Patch68: kvm-vhost-vsock-pci-force-virtio-version-1.patch
|
||||||
|
# For bz#1868449 - vhost_vsock error: device is modern-only, use disable-legacy=on
|
||||||
|
Patch69: kvm-vhost-user-vsock-pci-force-virtio-version-1.patch
|
||||||
|
# For bz#1868449 - vhost_vsock error: device is modern-only, use disable-legacy=on
|
||||||
|
Patch70: kvm-vhost-vsock-ccw-force-virtio-version-1.patch
|
||||||
|
|
||||||
BuildRequires: wget
|
BuildRequires: wget
|
||||||
BuildRequires: rpm-build
|
BuildRequires: rpm-build
|
||||||
@ -1164,6 +1172,14 @@ useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin \
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Oct 05 2020 Danilo Cesar Lemes de Paula <ddepaula@redhat.com> - 5.1.0-12.el8_3
|
||||||
|
- kvm-virtio-skip-legacy-support-check-on-machine-types-le.patch [bz#1868449]
|
||||||
|
- kvm-vhost-vsock-pci-force-virtio-version-1.patch [bz#1868449]
|
||||||
|
- kvm-vhost-user-vsock-pci-force-virtio-version-1.patch [bz#1868449]
|
||||||
|
- kvm-vhost-vsock-ccw-force-virtio-version-1.patch [bz#1868449]
|
||||||
|
- Resolves: bz#1868449
|
||||||
|
(vhost_vsock error: device is modern-only, use disable-legacy=on)
|
||||||
|
|
||||||
* Mon Oct 05 2020 Danilo Cesar Lemes de Paula <ddepaula@redhat.com> - 5.1.0-11.el8_3
|
* Mon Oct 05 2020 Danilo Cesar Lemes de Paula <ddepaula@redhat.com> - 5.1.0-11.el8_3
|
||||||
- kvm-migration-increase-max-bandwidth-to-128-MiB-s-1-Gib-.patch [bz#1874004]
|
- kvm-migration-increase-max-bandwidth-to-128-MiB-s-1-Gib-.patch [bz#1874004]
|
||||||
- kvm-redhat-Make-all-generated-so-files-executable-not-on.patch [bz#1876635]
|
- kvm-redhat-Make-all-generated-so-files-executable-not-on.patch [bz#1876635]
|
||||||
|
Loading…
Reference in New Issue
Block a user