diff options
author | Raphael Norwitz <raphael.norwitz@nutanix.com> | 2019-08-22 11:34:24 -0700 |
---|---|---|
committer | Michael S. Tsirkin <mst@redhat.com> | 2019-09-16 06:27:35 -0400 |
commit | d8438bd24a3f2b6fd6d0e788c18483ca9e239b36 (patch) | |
tree | a9604e8b34c0e4e840ad4a3e1eae7248c9f0e2e0 /hw/block/vhost-user-blk.c | |
parent | d8b92bd41822c053daa4dbf88cf36b14241a0279 (diff) |
vhost-user-blk: prevent using uninitialized vqs
Same rational as: e6cc11d64fc998c11a4dfcde8fda3fc33a74d844
Of the 3 virtqueues, seabios only sets cmd, leaving ctrl
and event without a physical address. This can cause
vhost_verify_ring_part_mapping to return ENOMEM, causing
the following logs:
qemu-system-x86_64: Unable to map available ring for ring 0
qemu-system-x86_64: Verify ring failure on region 0
This has already been fixed for vhost scsi devices and was
recently vhost-user scsi devices. This commit fixes it for
vhost-user-blk devices.
Suggested-by: Phillippe Mathieu-Daude <philmd@redhat.com>
Signed-off-by: Raphael Norwitz <raphael.norwitz@nutanix.com>
Message-Id: <1566498865-55506-1-git-send-email-raphael.norwitz@nutanix.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'hw/block/vhost-user-blk.c')
-rw-r--r-- | hw/block/vhost-user-blk.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/hw/block/vhost-user-blk.c b/hw/block/vhost-user-blk.c index 0b8c5dfeab..63da9bb619 100644 --- a/hw/block/vhost-user-blk.c +++ b/hw/block/vhost-user-blk.c @@ -421,7 +421,7 @@ static void vhost_user_blk_device_realize(DeviceState *dev, Error **errp) } s->inflight = g_new0(struct vhost_inflight, 1); - s->vqs = g_new(struct vhost_virtqueue, s->num_queues); + s->vqs = g_new0(struct vhost_virtqueue, s->num_queues); s->watch = 0; s->connected = false; |