Message ID | 20220726192150.2435175-5-alex.bennee@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | virtio-gpio and various virtio cleanups | expand |
在 2022/7/27 03:21, Alex Bennée 写道: > 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> > --- > hw/virtio/virtio.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > 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. */
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. */
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> --- hw/virtio/virtio.c | 7 +++++++ 1 file changed, 7 insertions(+)