aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>2023-09-13 21:44:10 +0100
committerPaolo Bonzini <pbonzini@redhat.com>2023-10-03 10:29:39 +0200
commitbe2b619a17345d007bcf9987a3e4afd1edea3e4f (patch)
tree5725853d12736ec47de2f60adc3af3d63c0d808a
parent77668e4b9bca03a856c27ba899a2513ddf52bb52 (diff)
downloadqemu-be2b619a17345d007bcf9987a3e4afd1edea3e4f.zip
qemu-be2b619a17345d007bcf9987a3e4afd1edea3e4f.tar.gz
qemu-be2b619a17345d007bcf9987a3e4afd1edea3e4f.tar.bz2
scsi-disk: ensure that FORMAT UNIT commands are terminated
Otherwise when a FORMAT UNIT command is issued, the SCSI layer can become confused because it can find itself in the situation where it thinks there is still data to be transferred which can cause the next emulated SCSI command to fail. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Fixes: 6ab71761 ("scsi-disk: add FORMAT UNIT command") Tested-by: Thomas Huth <thuth@redhat.com> Message-ID: <20230913204410.65650-4-mark.cave-ayland@ilande.co.uk> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r--hw/scsi/scsi-disk.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c
index 477ee2b..6691f5e 100644
--- a/hw/scsi/scsi-disk.c
+++ b/hw/scsi/scsi-disk.c
@@ -1959,6 +1959,10 @@ static void scsi_disk_emulate_write_data(SCSIRequest *req)
scsi_disk_emulate_write_same(r, r->iov.iov_base);
break;
+ case FORMAT_UNIT:
+ scsi_req_complete(&r->req, GOOD);
+ break;
+
default:
abort();
}