scsi: megasas: Internal cdbs have 16-byte length
authorGuenter Roeck <linux@roeck-us.net>
Tue, 28 Feb 2023 17:11:29 +0000 (09:11 -0800)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 28 Nov 2024 17:02:22 +0000 (18:02 +0100)
commit3abb67323aeecf06a27191076ab50424ec21f334
treee7ad887b589bf6ab2986568bb02ee9e17c657aa0
parent654076bc20491a7d7b3c53921487715e73a35162
scsi: megasas: Internal cdbs have 16-byte length

Host drivers do not necessarily set cdb_len in megasas io commands.
With commits 6d1511cea0 ("scsi: Reject commands if the CDB length
exceeds buf_len") and fe9d8927e2 ("scsi: Add buf_len parameter to
scsi_req_new()"), this results in failures to boot Linux from affected
SCSI drives because cdb_len is set to 0 by the host driver.
Set the cdb length to its actual size to solve the problem.

Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Tested-by: Fiona Ebner <f.ebner@proxmox.com>
Link: https://lore.kernel.org/r/20230228171129.4094709-1-linux@roeck-us.net
Cc: qemu-stable@nongnu.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
hw/scsi/megasas.c