virtio-fs devices are only specified for virtio-1, so it is unclear how a legacy or transitional device should behave.
Signed-off-by: Cornelia Huck <coh...@redhat.com> --- Forcing off legacy now (after the virtio-fs device has already been available) may have unintended consequences, therefore RFC. By default, a virtio-pci device uses 'AUTO' for disable_legacy, which will resolve to different values based upon which bus the device has been plugged. Therefore, forcing disable_legacy may result in the same device or a quite different one. Even though pre-virtio-1 behaviour of virtio-fs devices is simply not specified, toggling disable_legacy will have implications for the BAR layout, IIRC, and therefore a guest might end up getting a different device, even if it always used it with virtio-1 anyway. Not sure what the best way to solve this problem is. Adding a compat property for disable_legacy=AUTO may be the right thing to do, but I'm not quite clear if there are any further implications here. Whatever we do here, we should make sure that the ccw incarnation of this device indeed forces virtio-1. --- hw/virtio/vhost-user-fs-pci.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/virtio/vhost-user-fs-pci.c b/hw/virtio/vhost-user-fs-pci.c index e11c889d82b3..244205edf765 100644 --- a/hw/virtio/vhost-user-fs-pci.c +++ b/hw/virtio/vhost-user-fs-pci.c @@ -44,6 +44,7 @@ static void vhost_user_fs_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp) vpci_dev->nvectors = dev->vdev.conf.num_request_queues + 2; } + virtio_pci_force_virtio_1(vpci_dev); qdev_realize(vdev, BUS(&vpci_dev->bus), errp); } -- 2.25.4