scsi: target: spc: Fix RSOC parameter data header size

[ Upstream commit b50532318793d28a7628c1ffc129a2226e83e495 ]

The SPC document states that "The COMMAND DATA LENGTH field indicates the
length in bytes of the command descriptor list".

The length should be subtracted by 4 to represent the length of the
description list, not 3.

Signed-off-by: Chaohai Chen <wdhh66@163.com>
Link: https://lore.kernel.org/r/20250115070739.216154-1-wdhh66@163.com
Reviewed-by: Dmitry Bogdanov <d.bogdanov@yadro.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Chaohai Chen 2025-01-15 15:07:39 +08:00 committed by Greg Kroah-Hartman
parent 4ae2c7c7d3
commit 93a562eedc

View File

@ -2243,7 +2243,7 @@ spc_emulate_report_supp_op_codes(struct se_cmd *cmd)
response_length += spc_rsoc_encode_command_descriptor( response_length += spc_rsoc_encode_command_descriptor(
&buf[response_length], rctd, descr); &buf[response_length], rctd, descr);
} }
put_unaligned_be32(response_length - 3, buf); put_unaligned_be32(response_length - 4, buf);
} else { } else {
response_length = spc_rsoc_encode_one_command_descriptor( response_length = spc_rsoc_encode_one_command_descriptor(
&buf[response_length], rctd, descr, &buf[response_length], rctd, descr,