diff options
author | Tang Wenji <tang.wenji@zte.com.cn> | 2017-07-08 11:15:44 +0800 |
---|---|---|
committer | Nicholas Bellinger <nab@linux-iscsi.org> | 2017-07-09 20:58:49 -0700 |
commit | 388fe6996bf658146e70c0df986981eae4be0385 (patch) | |
tree | 8b0c999ac9c82a61254d47802903442b9ae4f99d | |
parent | de8c5221aa003935d6d31becf5850b247dff14a1 (diff) | |
download | linux-388fe6996bf658146e70c0df986981eae4be0385.tar.bz2 |
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>
-rw-r--r-- | drivers/target/target_core_device.c | 2 | ||||
-rw-r--r-- | drivers/target/target_core_spc.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/drivers/target/target_core_device.c b/drivers/target/target_core_device.c index 1c7c57a3c52e..e8dd6da164b2 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 f59ac7671031..cb0461a10808 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: |