scsi-disk: fix the mode data length field returned by the MODE SENSE command
authorBernhard Kohl <bernhard.kohl@nsn.com>
Tue, 31 Aug 2010 09:22:29 +0000 (11:22 +0200)
committerKevin Wolf <kwolf@redhat.com>
Wed, 8 Sep 2010 10:39:02 +0000 (12:39 +0200)
The MODE DATA LENGTH field indicates the length in bytes of the following
data that is available to be transferred. The mode data length does not include
the number of bytes in the MODE DATA LENGTH field.

Signed-off-by: Bernhard Kohl <bernhard.kohl@nsn.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
hw/scsi-disk.c

index 07a6d86..b627ffe 100644 (file)
@@ -653,7 +653,7 @@ static int scsi_disk_emulate_mode_sense(SCSIRequest *req, uint8_t *outbuf)
     }
 
     buflen = p - outbuf;
-    outbuf[0] = buflen - 4;
+    outbuf[0] = buflen - 1;
     if (buflen > req->cmd.xfer)
         buflen = req->cmd.xfer;
     return buflen;