diff options
| author | Peter Maydell | 2013-07-26 17:41:28 +0200 |
|---|---|---|
| committer | Peter Maydell | 2013-08-12 12:57:56 +0200 |
| commit | f7b803b377f74f7e109559e8e64f04c4c1fcd86b (patch) | |
| tree | 600434f1e4f9cfa8af4d0595a3d35454225a476e | |
| parent | hw/virtio/virtio: Don't allow guests to add/remove queues (diff) | |
| download | qemu-f7b803b377f74f7e109559e8e64f04c4c1fcd86b.tar.gz qemu-f7b803b377f74f7e109559e8e64f04c4c1fcd86b.tar.xz qemu-f7b803b377f74f7e109559e8e64f04c4c1fcd86b.zip | |
hw/virtio/virtio-mmio: Make QueueNumMax read 0 for unavailable queues
The virtio-mmio spec says that QueueNumMax must read zero for queues
which are unavailable; implement this, rather than always returning
VIRTQUEUE_MAX_SIZE.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 1374853288-9912-3-git-send-email-peter.maydell@linaro.org
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
| -rw-r--r-- | hw/virtio/virtio-mmio.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/hw/virtio/virtio-mmio.c b/hw/virtio/virtio-mmio.c index 88cf994b97..4bd29533f3 100644 --- a/hw/virtio/virtio-mmio.c +++ b/hw/virtio/virtio-mmio.c @@ -151,6 +151,9 @@ static uint64_t virtio_mmio_read(void *opaque, hwaddr offset, unsigned size) } return proxy->host_features; case VIRTIO_MMIO_QUEUENUMMAX: + if (!virtio_queue_get_num(vdev, vdev->queue_sel)) { + return 0; + } return VIRTQUEUE_MAX_SIZE; case VIRTIO_MMIO_QUEUEPFN: return virtio_queue_get_addr(vdev, vdev->queue_sel) |
