From: Tang Wenji Date: Sat, 8 Jul 2017 03:15:44 +0000 (+0800) Subject: target: Fix cmd size for PR-OUT in passthrough_parse_cdb X-Git-Tag: v4.14-rc1~470^2~6 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=388fe6996bf658146e70c0df986981eae4be0385;p=platform%2Fkernel%2Flinux-rpi.git 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 Signed-off-by: Nicholas Bellinger --- diff --git a/drivers/target/target_core_device.c b/drivers/target/target_core_device.c index 1c7c57a..e8dd6da 100644 --- a/drivers/target/target_core_device.c +++ b/drivers/target/target_core_device.c @@ -1183,7 +1183,7 @@ passthrough_parse_cdb(struct se_cmd *cmd, } if (cdb[0] == PERSISTENT_RESERVE_OUT) { cmd->execute_cmd = target_scsi3_emulate_pr_out; - size = get_unaligned_be16(&cdb[7]); + size = get_unaligned_be32(&cdb[5]); return target_cmd_size_check(cmd, size); } diff --git a/drivers/target/target_core_spc.c b/drivers/target/target_core_spc.c index f59ac76..cb0461a1 100644 --- a/drivers/target/target_core_spc.c +++ b/drivers/target/target_core_spc.c @@ -1307,7 +1307,7 @@ spc_parse_cdb(struct se_cmd *cmd, unsigned int *size) cmd->execute_cmd = target_scsi3_emulate_pr_in; break; case PERSISTENT_RESERVE_OUT: - *size = get_unaligned_be16(&cdb[7]); + *size = get_unaligned_be32(&cdb[5]); cmd->execute_cmd = target_scsi3_emulate_pr_out; break; case RELEASE: