[STABLE,0.13,05/13] scsi-disk: return CHECK CONDITION for unknown page codes in the MODE SENSE command

Submitted by Kevin Wolf on Sept. 13, 2010, 12:42 p.m.

Details

Message ID 1284381771-7333-6-git-send-email-kwolf@redhat.com
State New
Headers show

Commit Message

Kevin Wolf Sept. 13, 2010, 12:42 p.m.
From: Bernhard Kohl <bernhard.kohl@nsn.com>

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)
---
 hw/scsi-disk.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

Patch hide | download patch | download mbox

diff --git a/hw/scsi-disk.c b/hw/scsi-disk.c
index 2a107b1..70c7a08 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;