Patchwork [v3,5/6] scsi-disk: return CHECK CONDITION for unknown page codes in the MODE SENSE command

login
register
mail settings
Submitter Bernhard Kohl
Date Aug. 31, 2010, 12:08 p.m.
Message ID <1283256507-15467-6-git-send-email-bernhard.kohl@nsn.com>
Download mbox | patch
Permalink /patch/63232/
State New
Headers show

Comments

Bernhard Kohl - Aug. 31, 2010, 12:08 p.m.
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>
---
 hw/scsi-disk.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

Patch

diff --git a/hw/scsi-disk.c b/hw/scsi-disk.c
index e085d5b..44f99b0 100644
--- a/hw/scsi-disk.c
+++ b/hw/scsi-disk.c
@@ -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;