On Thu, Apr 02, 2015 at 07:50:44PM +0200, Paolo Bonzini wrote: > After qemu_iovec_destroy, the QEMUIOVector's size is zeroed and > the zero size ultimately is used to compute virtqueue_push's len > argument. Therefore, reads from virtio-blk devices did not > migrate their results correctly. (Writes were okay). > > Save the size in virtio_blk_handle_request, and use it when the request > is completed. > > Based on a patch by Wen Congyang. > > Signed-off-by: Wen Congyang <we...@cn.fujitsu.com> > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > hw/block/dataplane/virtio-blk.c | 3 +-- > hw/block/virtio-blk.c | 13 ++++++++++++- > include/hw/virtio/virtio-blk.h | 1 + > 3 files changed, 14 insertions(+), 3 deletions(-)
This also changes len for VIRTIO_BLK_T_SCSI_CMD and VIRTIO_BLK_T_GET_ID. The Linux virtio_blk.ko and Windows viostor drivers ignore the value anyway so what's the worst thing that could happen? :) Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
pgp3N5NMJvqaV.pgp
Description: PGP signature