aboutsummaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorBernhard Kohl <bernhard.kohl@nsn.com>2010-08-31 14:08:26 +0200
committerKevin Wolf <kwolf@redhat.com>2010-09-13 14:31:37 +0200
commitd65741acf42daffa422a2c3e77465df49e550d49 (patch)
tree37a5abef94048c3dc02cfcffc21888ae74c60dbe /hw
parentscsi-disk: fix the block descriptor returned by the MODE SENSE command (diff)
downloadqemu-kvm-d65741acf42daffa422a2c3e77465df49e550d49.tar.gz
qemu-kvm-d65741acf42daffa422a2c3e77465df49e550d49.tar.bz2
qemu-kvm-d65741acf42daffa422a2c3e77465df49e550d49.zip
scsi-disk: return CHECK CONDITION for unknown page codes in the MODE SENSE command
SCSI-Spec: http://ldkelley.com/SCSI2/SCSI2/SCSI2-08.html#8.2.10 "An initiator may request any one or all of the supported mode pages from a target. If an initiator issues a MODE SENSE command with a page code value not implemented by the target, the target shall return CHECK CONDITION status and shall set the sense key to ILLEGAL REQUEST and the additional sense code to INVALID FIELD IN CDB." Signed-off-by: Bernhard Kohl <bernhard.kohl@nsn.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com> (cherry picked from commit a9c17b2bf3639662fbdeb736289ebabfda9fa21a)
Diffstat (limited to 'hw')
-rw-r--r--hw/scsi-disk.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/hw/scsi-disk.c b/hw/scsi-disk.c
index 2a107b1bf..70c7a0819 100644
--- a/hw/scsi-disk.c
+++ b/hw/scsi-disk.c
@@ -689,6 +689,8 @@ static int scsi_disk_emulate_mode_sense(SCSIRequest *req, uint8_t *outbuf)
p += mode_sense_page(req, 0x08, p, page_control);
p += mode_sense_page(req, 0x2a, p, page_control);
break;
+ default:
+ return -1; /* ILLEGAL_REQUEST */
}
buflen = p - outbuf;