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 07a6d86946e975bbdec0da9831dde89fa98cf62f..b627ffee745adf5a7c0317f9d2568a9a08c837a5 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;