hw: report invalid disable-legacy|modern usage for virtio-1-only devs
commitf2784eed306449c3d04a71a05ed6463b8289aedf
authorDaniel P. Berrangé <berrange@redhat.com>
Fri, 15 Feb 2019 10:32:38 +0000 (15 10:32 +0000)
committerMichael S. Tsirkin <mst@redhat.com>
Mon, 20 May 2019 22:40:02 +0000 (20 18:40 -0400)
tree2423b124711ecb9137f44769d99d504f2aca3074
parent2259637b95bef3116cc262459271de08e038cc66
hw: report invalid disable-legacy|modern usage for virtio-1-only devs

A number of virtio devices (gpu, crypto, mouse, keyboard, tablet) only
support the virtio-1 (aka modern) mode. Currently if the user launches
QEMU, setting those devices to enable legacy mode, QEMU will silently
create them in modern mode, ignoring the user's (mistaken) request.

This patch introduces proper data validation so that an attempt to
configure a virtio-1-only devices in legacy mode gets reported as an
error to the user.

Checking this required introduction of a new field to explicitly track
what operating model is to be used for a device, separately from the
disable_modern and disable_legacy fields that record the user's
requested configuration.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20190215103239.28640-2-berrange@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
hw/core/machine.c
hw/display/virtio-gpu-pci.c
hw/display/virtio-vga.c
hw/virtio/virtio-crypto-pci.c
hw/virtio/virtio-input-pci.c
hw/virtio/virtio-pci.c
hw/virtio/virtio-pci.h