scsi: core: Remove the cmd field from struct scsi_request
authorChristoph Hellwig <hch@lst.de>
Thu, 24 Feb 2022 17:55:47 +0000 (18:55 +0100)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 2 Mar 2022 03:21:49 +0000 (22:21 -0500)
commitce70fd9a551af7424a7dace2a1ba05a7de8eae27
treec074d0b72237150c6657b632325917f28b1a827a
parent71bada345b33b9297e7cc9415db6328c99b554f9
scsi: core: Remove the cmd field from struct scsi_request

Now that each scsi_request is backed by a scsi_cmnd, there is no need to
indirect the CDB storage.  Change all submitters of SCSI passthrough
requests to store the CDB information directly in the scsi_cmnd, and while
doing so allocate the full 32 bytes that cover all Linux supported SCSI
hosts instead of requiring dynamic allocation for > 16 byte CDBs.  On
64-bit systems this does not change the size of the scsi_cmnd at all, while
on 32-bit systems it slightly increases it for now, but that increase will
be made up by the removal of the remaining scsi_request fields.

Link: https://lore.kernel.org/r/20220224175552.988286-4-hch@lst.de
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: John Garry <john.garry@huawei.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
19 files changed:
drivers/ata/libata-scsi.c
drivers/block/pktcdvd.c
drivers/scsi/scsi_bsg.c
drivers/scsi/scsi_debugfs.c
drivers/scsi/scsi_error.c
drivers/scsi/scsi_ioctl.c
drivers/scsi/scsi_lib.c
drivers/scsi/scsi_logging.c
drivers/scsi/sd.c
drivers/scsi/sg.c
drivers/scsi/sr.c
drivers/scsi/st.c
drivers/scsi/ufs/ufshpb.c
drivers/target/target_core_pscsi.c
drivers/usb/storage/cypress_atacb.c
drivers/usb/storage/isd200.c
include/scsi/scsi_cmnd.h
include/scsi/scsi_eh.h
include/scsi/scsi_request.h