Commit 95fe1ee41e23fa271416da67483594dde74bc6ca
Committed by
Nicholas Bellinger
1 parent
bf0053550a
Exists in
smarc-l5.0.0_1.0.0-ga
and in
5 other branches
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: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Showing 1 changed file with 4 additions and 10 deletions Side-by-side Diff
drivers/target/target_core_cdb.c
... | ... | @@ -1058,11 +1058,8 @@ |
1058 | 1058 | */ |
1059 | 1059 | buf[0] = 0x70; |
1060 | 1060 | buf[SPC_SENSE_KEY_OFFSET] = UNIT_ATTENTION; |
1061 | - /* | |
1062 | - * Make sure request data length is enough for additional | |
1063 | - * sense data. | |
1064 | - */ | |
1065 | - if (cmd->data_length <= 18) { | |
1061 | + | |
1062 | + if (cmd->data_length < 18) { | |
1066 | 1063 | buf[7] = 0x00; |
1067 | 1064 | err = -EINVAL; |
1068 | 1065 | goto end; |
... | ... | @@ -1079,11 +1076,8 @@ |
1079 | 1076 | */ |
1080 | 1077 | buf[0] = 0x70; |
1081 | 1078 | buf[SPC_SENSE_KEY_OFFSET] = NO_SENSE; |
1082 | - /* | |
1083 | - * Make sure request data length is enough for additional | |
1084 | - * sense data. | |
1085 | - */ | |
1086 | - if (cmd->data_length <= 18) { | |
1079 | + | |
1080 | + if (cmd->data_length < 18) { | |
1087 | 1081 | buf[7] = 0x00; |
1088 | 1082 | err = -EINVAL; |
1089 | 1083 | goto end; |