qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] scsi-disk: fix crash on VERIFY command
@ 2016-12-29 12:19 Zhang Qian
  2017-01-02  9:34 ` Paolo Bonzini
  0 siblings, 1 reply; 6+ messages in thread
From: Zhang Qian @ 2016-12-29 12:19 UTC (permalink / raw)
  To: pbonzini; +Cc: qemu-devel

From c2f1631132821d61e1942a8723ba596f91d3e672 Mon Sep 17 00:00:00 2001
From: Zhang Qian <zhangqian@sangfor.com.cn>
Date: Thu, 29 Dec 2016 20:00:01 +0800
Subject: [PATCH] scsi-disk: fix crash on VERIFY command Commit 166dbda
 "scsi-disk: fix VERIFY for scsi-block" add a process of VERIFY in
 scsi_block_dma_command. But, the cmd.mode of req is SCSI_XFER_NONE, the req
 is handled as a read operation. A verify command is not an actual read (we do
 not implement compare mode) and thus does not have an AIOCB attached. so, it
 will be crash in scsi_dma_complete. Commit ef8489d "scsi: avoid assertion
 failure on VERIFY command" is added to process verify command, so we treat
 verify command as a write operation.
Signed-off-by: Zhang Qian <zhangqian@sangfor.com.cn>
---
 hw/scsi/scsi-disk.c | 4 ++++
 1 file changed, 4 insertions(+)


diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c
index bdd1e5f..ab05bf9 100644
--- a/hw/scsi/scsi-disk.c
+++ b/hw/scsi/scsi-disk.c
@@ -2170,6 +2170,10 @@ static int32_t scsi_disk_dma_command(SCSIRequest *req, uint8_t *buf)
         if (!check_lba_range(s, r->req.cmd.lba, len)) {
             goto illegal_lba;
         }
+ if (command == VERIFY_10 || command == VERIFY_12 ||
+            command == VERIFY_16) {
+            r->req.cmd.mode = SCSI_XFER_TO_DEV;
+        }
         r->sector = r->req.cmd.lba * (s->qdev.blocksize / 512);
         r->sector_count = len * (s->qdev.blocksize / 512);
         break;
-- 







^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2017-01-03 17:18 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-12-29 12:19 [Qemu-devel] [PATCH] scsi-disk: fix crash on VERIFY command Zhang Qian
2017-01-02  9:34 ` Paolo Bonzini
2017-01-03  8:12   ` Zhang Qian
2017-01-03  9:38     ` Paolo Bonzini
2017-01-03  9:58       ` Zhang Qian
2017-01-03 17:18         ` Paolo Bonzini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).