qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 5/5] scsi: Ensure command and transfer lengths are s


From: Christian Borntraeger
Subject: [Qemu-devel] [PATCH 5/5] scsi: Ensure command and transfer lengths are set for all SCSI stream commands.
Date: Thu, 14 Jun 2012 15:55:29 +0200

From: Christian Hoff <address@hidden>

scsi-generic relies on those values to be correct, so it is important that
those values are initialized properly prior to submitting the SCSI command.

Signed-off-by: Christian Hoff <address@hidden>
Signed-off-by: Christian Borntraeger <address@hidden>
---
 hw/scsi-bus.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/hw/scsi-bus.c b/hw/scsi-bus.c
index 9854321..3c3f190 100644
--- a/hw/scsi-bus.c
+++ b/hw/scsi-bus.c
@@ -817,7 +817,11 @@ static int scsi_req_stream_length(SCSICommand *cmd, 
SCSIDevice *dev, uint8_t *bu
     switch (buf[0]) {
     /* stream commands */
     case ERASE_12:
+        cmd->len = 12;
+        cmd->xfer = 0;
+        break;
     case ERASE_16:
+        cmd->len = 16;
         cmd->xfer = 0;
         break;
     case READ_6:
@@ -836,9 +840,12 @@ static int scsi_req_stream_length(SCSICommand *cmd, 
SCSIDevice *dev, uint8_t *bu
         cmd->xfer = 0;
         break;
     case SPACE_16:
+        cmd->len = 16;
         cmd->xfer = buf[13] | (buf[12] << 8);
         break;
     case READ_POSITION:
+        cmd->len = 10;
+
         switch (buf[1] & 0x1f) /* operation code */ {
         case SHORT_FORM_BLOCK_ID:
         case SHORT_FORM_VENDOR_SPECIFIC:
@@ -856,6 +863,7 @@ static int scsi_req_stream_length(SCSICommand *cmd, 
SCSIDevice *dev, uint8_t *bu
 
         break;
     case FORMAT_UNIT:
+        cmd->len = 6;
         cmd->xfer = buf[4] | (buf[3] << 8);
         break;
     /* generic commands */
-- 
1.7.0.4




reply via email to

[Prev in Thread] Current Thread [Next in Thread]