diff options
| author | Alex Bennée | 2022-08-02 11:49:56 +0200 |
|---|---|---|
| committer | Michael S. Tsirkin | 2022-10-07 15:41:51 +0200 |
| commit | 8d11c10d0699d9ee9745b4b5bc138e573d852c0f (patch) | |
| tree | 70c7476c275568a90a8be672807694b9eb042f4b | |
| parent | hw/virtio: fix some coding style issues (diff) | |
| download | qemu-8d11c10d0699d9ee9745b4b5bc138e573d852c0f.tar.gz qemu-8d11c10d0699d9ee9745b4b5bc138e573d852c0f.tar.xz qemu-8d11c10d0699d9ee9745b4b5bc138e573d852c0f.zip | |
hw/virtio: log potentially buggy guest drivers
If the guest driver attempts to use the UNUSED(30) bit it is
potentially buggy as 6.3 Legacy Interface: Reserved Feature Bits
states it "SHOULD NOT be negotiated". For now just log this guest
error.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Acked-by: Jason Wang <jasowang@redhat.com>
Message-Id: <20220802095010.3330793-9-alex.bennee@linaro.org>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
| -rw-r--r-- | hw/virtio/virtio.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index 5d607aeaa0..97a6307c0f 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -2980,6 +2980,13 @@ int virtio_set_features(VirtIODevice *vdev, uint64_t val) if (vdev->status & VIRTIO_CONFIG_S_FEATURES_OK) { return -EINVAL; } + + if (val & (1ull << VIRTIO_F_BAD_FEATURE)) { + qemu_log_mask(LOG_GUEST_ERROR, + "%s: guest driver for %s has enabled UNUSED(30) feature bit!\n", + __func__, vdev->name); + } + ret = virtio_set_features_nocheck(vdev, val); if (virtio_vdev_has_feature(vdev, VIRTIO_RING_F_EVENT_IDX)) { /* VIRTIO_RING_F_EVENT_IDX changes the size of the caches. */ |
