* [PATCH v2 1/3] vhost-vsock-pci: force virtio version 1
2020-08-19 14:38 [PATCH v2 0/3] vhost-vsock: force virtio version 1 Stefano Garzarella
@ 2020-08-19 14:38 ` Stefano Garzarella
2020-08-19 14:38 ` [PATCH v2 2/3] vhost-user-vsock-pci: " Stefano Garzarella
2020-08-19 14:38 ` [PATCH v2 3/3] vhost-vsock-ccw: " Stefano Garzarella
2 siblings, 0 replies; 4+ messages in thread
From: Stefano Garzarella @ 2020-08-19 14:38 UTC (permalink / raw)
To: qemu-devel
Cc: Thomas Huth, Qinghua Cheng, Qian Cai, David Hildenbrand,
Cornelia Huck, qemu-stable, Halil Pasic, Christian Borntraeger,
qemu-s390x, Michael S. Tsirkin, Richard Henderson
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.
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>
---
hw/virtio/vhost-vsock-pci.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/virtio/vhost-vsock-pci.c b/hw/virtio/vhost-vsock-pci.c
index a815278e69..d1fcad0472 100644
--- a/hw/virtio/vhost-vsock-pci.c
+++ b/hw/virtio/vhost-vsock-pci.c
@@ -44,6 +44,7 @@ static void vhost_vsock_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
VHostVSockPCI *dev = VHOST_VSOCK_PCI(vpci_dev);
DeviceState *vdev = DEVICE(&dev->vdev);
+ virtio_pci_force_virtio_1(vpci_dev);
qdev_realize(vdev, BUS(&vpci_dev->bus), errp);
}
@@ -72,7 +73,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.26.2
^ permalink raw reply related [flat|nested] 4+ messages in thread* [PATCH v2 2/3] vhost-user-vsock-pci: force virtio version 1
2020-08-19 14:38 [PATCH v2 0/3] vhost-vsock: force virtio version 1 Stefano Garzarella
2020-08-19 14:38 ` [PATCH v2 1/3] vhost-vsock-pci: " Stefano Garzarella
@ 2020-08-19 14:38 ` Stefano Garzarella
2020-08-19 14:38 ` [PATCH v2 3/3] vhost-vsock-ccw: " Stefano Garzarella
2 siblings, 0 replies; 4+ messages in thread
From: Stefano Garzarella @ 2020-08-19 14:38 UTC (permalink / raw)
To: qemu-devel
Cc: Thomas Huth, Qinghua Cheng, Qian Cai, David Hildenbrand,
Cornelia Huck, qemu-stable, Halil Pasic, Christian Borntraeger,
qemu-s390x, Michael S. Tsirkin, Richard Henderson
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>
---
hw/virtio/vhost-user-vsock-pci.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/virtio/vhost-user-vsock-pci.c b/hw/virtio/vhost-user-vsock-pci.c
index f4cf95873d..3e17cf0480 100644
--- a/hw/virtio/vhost-user-vsock-pci.c
+++ b/hw/virtio/vhost-user-vsock-pci.c
@@ -40,6 +40,7 @@ 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);
+ virtio_pci_force_virtio_1(vpci_dev);
qdev_realize(vdev, BUS(&vpci_dev->bus), errp);
}
@@ -68,7 +69,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.26.2
^ permalink raw reply related [flat|nested] 4+ messages in thread* [PATCH v2 3/3] vhost-vsock-ccw: force virtio version 1
2020-08-19 14:38 [PATCH v2 0/3] vhost-vsock: force virtio version 1 Stefano Garzarella
2020-08-19 14:38 ` [PATCH v2 1/3] vhost-vsock-pci: " Stefano Garzarella
2020-08-19 14:38 ` [PATCH v2 2/3] vhost-user-vsock-pci: " Stefano Garzarella
@ 2020-08-19 14:38 ` Stefano Garzarella
2 siblings, 0 replies; 4+ messages in thread
From: Stefano Garzarella @ 2020-08-19 14:38 UTC (permalink / raw)
To: qemu-devel
Cc: Thomas Huth, Qinghua Cheng, Qian Cai, David Hildenbrand,
Cornelia Huck, qemu-stable, Halil Pasic, Christian Borntraeger,
qemu-s390x, Michael S. Tsirkin, Richard Henderson
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.
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>
---
hw/s390x/vhost-vsock-ccw.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/hw/s390x/vhost-vsock-ccw.c b/hw/s390x/vhost-vsock-ccw.c
index 0822ecca89..0759143efa 100644
--- a/hw/s390x/vhost-vsock-ccw.c
+++ b/hw/s390x/vhost-vsock-ccw.c
@@ -40,7 +40,9 @@ 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);
+ ccw_dev->force_revision_1 = true;
virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev),
TYPE_VHOST_VSOCK);
}
--
2.26.2
^ permalink raw reply related [flat|nested] 4+ messages in thread