Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

target: Fix cmd size for PR-OUT in passthrough_parse_cdb

The cmd size should be 4bytes form byte5 to byte8 when CDB opcode
is PERSISTENT_RESERVE_OUT in SPC3 and SPC4

(Also fix up the same in spc_parse_cdb - MNC)

Signed-off-by: Tang Wenji <tang.wenji@zte.com.cn>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>

authored by

Tang Wenji and committed by
Nicholas Bellinger
388fe699 de8c5221

+2 -2
+1 -1
drivers/target/target_core_device.c
··· 1183 1183 } 1184 1184 if (cdb[0] == PERSISTENT_RESERVE_OUT) { 1185 1185 cmd->execute_cmd = target_scsi3_emulate_pr_out; 1186 - size = get_unaligned_be16(&cdb[7]); 1186 + size = get_unaligned_be32(&cdb[5]); 1187 1187 return target_cmd_size_check(cmd, size); 1188 1188 } 1189 1189
+1 -1
drivers/target/target_core_spc.c
··· 1307 1307 cmd->execute_cmd = target_scsi3_emulate_pr_in; 1308 1308 break; 1309 1309 case PERSISTENT_RESERVE_OUT: 1310 - *size = get_unaligned_be16(&cdb[7]); 1310 + *size = get_unaligned_be32(&cdb[5]); 1311 1311 cmd->execute_cmd = target_scsi3_emulate_pr_out; 1312 1312 break; 1313 1313 case RELEASE: