qemu/hw/virtio
Jia He fb20fbb764 vhost: avoid to start/stop virtqueue which is not ready
In our Armv8a server, we try to configure the vhost scsi but fail
to boot up the guest (-machine virt-2.10). The guest's boot failure
is very early, even earlier than grub.

There are 3 virtqueues (ctrl, event and cmd) for virtio scsi device,
but ovmf and seabios will only set the physical address for the 3rd
one (cmd). Then in vhost_virtqueue_start(), virtio_queue_get_desc_addr
will be 0 for ctrl and event vq when qemu negotiates with ovmf. So
vhost_memory_map fails with ENOMEM.

This patch just fixs it by early quitting the virtqueue start/stop
when virtio_queue_get_desc_addr is 0.

Btw, after guest kernel starts, all the 3 queues will be initialized
and set address correctly.

Already tested on Arm64 and X86_64 qemu.

Signed-off-by: Jia He <jia.he@hxt-semitech.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2018-03-01 18:17:47 +02:00
..
Makefile.objs stubs: move vhost stubs to stubs/vhost.o 2017-01-16 17:52:35 +01:00
trace-events vhost: Move log_dirty check 2018-02-08 21:06:41 +02:00
vhost-backend.c vhost: fix a memory leak 2017-08-02 00:13:25 +03:00
vhost-stub.c stubs: move vhost stubs to stubs/vhost.o 2017-01-16 17:52:35 +01:00
vhost-user.c vhost: remove assertion to prevent crash 2018-01-18 21:52:39 +02:00
vhost-vsock.c hw: use "qemu/osdep.h" as first #include in source files 2017-12-18 17:07:02 +03:00
vhost.c vhost: avoid to start/stop virtqueue which is not ready 2018-03-01 18:17:47 +02:00
virtio-balloon.c virtio,vhost,pci,pc: features, fixes and cleanups 2018-02-13 16:33:31 +00:00
virtio-bus.c virtio: remove event notifier cleanup call on de-assign 2018-02-08 21:06:26 +02:00
virtio-crypto-pci.c virtio-crypto: Convert to DEFINE_PROP_LINK 2017-07-14 12:04:43 +02:00
virtio-crypto.c virtio-crypto: Convert to DEFINE_PROP_LINK 2017-07-14 12:04:43 +02:00
virtio-mmio.c virtio-mmio: switch to linux headers 2017-01-18 22:59:53 +02:00
virtio-pci.c virtio-pci: trivial fixes in error message 2018-03-01 16:25:36 +02:00
virtio-pci.h vhost-user-blk: introduce a new vhost-user-blk host device 2018-01-18 21:52:37 +02:00
virtio-rng.c virtio-rng: Convert to DEFINE_PROP_LINK 2017-07-14 12:04:42 +02:00
virtio.c virtio: improve virtio devices initialization time 2018-02-08 21:06:40 +02:00