virtio: Ensure virt_queue is always initialised

Failing to initialise the virt_queue via virtio_init_device_vq() leaves,
amongst other things, the endianness unspecified. On arm/arm64 this
results in virtio_guest_to_host_uxx() treating the queue as big-endian
and trying to translate bogus addresses:

  Warning: unable to translate guest address 0x80b8249800000000 to host

Ensure the virt_queue is always initialised by the virtio device during

Cc: Marc Zyngier <>
Cc: Julien Thierry <>
Reviewed-by: Andre Przywara <>
Tested-by: Andre Przywara <>
Signed-off-by: Will Deacon <>
3 files changed