VIRTIO_BLK_F_SCSI is supposed to mean whether the host can *parse*
SCSI requests, not *execute* them.  So it should always be enabled,
and the scsi=on/off property tied to a separate configuration variable
that is not guest visible.

With this change, Linux has problems understanding failed requests, so
patch 1 works around the Linux bugs.

Important: because we need to do this to fix a migration compatibility
problem when QEMU might be invoked with an old machine type, we must do
this unconditionally.  This more or less assumes that no one ever invoked
QEMU with scsi=off, as it breaks migration from new QEMU, scsi=off to
old QEMU, also scsi=off.  However new->old is not supported upstream.
If any downstream cares about new->old migration, they can apply v1 of
the patches instead of this.

Paolo Bonzini (3):
  virtio-blk: report non-zero status when failing SG_IO requests
  virtio-blk: define VirtIOBlkConf
  virtio-blk: always enable VIRTIO_BLK_F_SCSI

 hw/s390-virtio-bus.c |   10 ++++--
 hw/s390-virtio-bus.h |    4 +-
 hw/virtio-blk.c      |   77 ++++++++++++++++++++++++-------------------------
 hw/virtio-blk.h      |   14 +++++----
 hw/virtio-pci.c      |   11 ++++---
 hw/virtio-pci.h      |    4 +-
 hw/virtio.h          |    4 +-
 7 files changed, 64 insertions(+), 60 deletions(-)

-- 
1.7.7.6


Reply via email to