scsi-disk: return CHECK CONDITION for unknown page codes in the MODE SENSE command
authorBernhard Kohl <bernhard.kohl@nsn.com>
Tue, 31 Aug 2010 12:08:26 +0000 (14:08 +0200)
committerKevin Wolf <kwolf@redhat.com>
Wed, 8 Sep 2010 10:39:10 +0000 (12:39 +0200)
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>
hw/scsi-disk.c

index e085d5b6f92308963206dec662f7a882d80decaf..44f99b08c2a7541c42ac83d3fe95dadf0ac923ea 100644 (file)
@@ -690,6 +690,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;