[0/2] virtio-scsi: Fix QEMU hang with vIOMMU and ATS
mbox series

Message ID 20180910145616.8598-1-famz@redhat.com
Headers show
  • virtio-scsi: Fix QEMU hang with vIOMMU and ATS
Related show


Fam Zheng Sept. 10, 2018, 2:56 p.m. UTC
The first patch describes the bug and the reproducer.

The VQ poll handler that is called by mistake within virtio_scsi_dataplane_stop
enters a dead loop because it fails to detect an error state. Fix both sides of
the problem: the handler should break out from the loop if no progress can be
made due to virtio_error; the handler shouldn't be called in that situation in
the first place.

Fam Zheng (2):
  virtio: Return true from virtio_queue_empty if broken
  virtio-scsi/virtio-blk: Disable poll handlers when stopping vq handler

 hw/block/dataplane/virtio-blk.c | 2 ++
 hw/scsi/virtio-scsi-dataplane.c | 2 ++
 hw/virtio/virtio.c              | 8 ++++++++
 3 files changed, 12 insertions(+)