Commit 95fe1ee4 authored by Sebastian Andrzej Siewior's avatar Sebastian Andrzej Siewior Committed by Nicholas Bellinger

target: accept REQUEST_SENSE with 18bytes

WindowsXP+BOT issues a MODE_SENSE request with page 0x1c which is not
suppoerted by target. Target rejects that command with
TCM_INVALID_CDB_FIELD, so far so good. On BOT I can't send the SENSE
response back, instead I can only reply that an error occured. The next
thing happens is a REQUEST_SENSE request with 18 bytes length. Since the
check here is more than 18 bytes I have to NACK that request as well.
This is not really required: We check for some additional room, but we
never use it. The additional length is set to 0xa so the total length is
0xa + 8 = 18 which is fine with my 18 bytes.
Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
parent bf005355
...@@ -1058,11 +1058,8 @@ int target_emulate_request_sense(struct se_task *task) ...@@ -1058,11 +1058,8 @@ int target_emulate_request_sense(struct se_task *task)
*/ */
buf[0] = 0x70; buf[0] = 0x70;
buf[SPC_SENSE_KEY_OFFSET] = UNIT_ATTENTION; buf[SPC_SENSE_KEY_OFFSET] = UNIT_ATTENTION;
/*
* Make sure request data length is enough for additional if (cmd->data_length < 18) {
* sense data.
*/
if (cmd->data_length <= 18) {
buf[7] = 0x00; buf[7] = 0x00;
err = -EINVAL; err = -EINVAL;
goto end; goto end;
...@@ -1079,11 +1076,8 @@ int target_emulate_request_sense(struct se_task *task) ...@@ -1079,11 +1076,8 @@ int target_emulate_request_sense(struct se_task *task)
*/ */
buf[0] = 0x70; buf[0] = 0x70;
buf[SPC_SENSE_KEY_OFFSET] = NO_SENSE; buf[SPC_SENSE_KEY_OFFSET] = NO_SENSE;
/*
* Make sure request data length is enough for additional if (cmd->data_length < 18) {
* sense data.
*/
if (cmd->data_length <= 18) {
buf[7] = 0x00; buf[7] = 0x00;
err = -EINVAL; err = -EINVAL;
goto end; goto end;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment