This series cleans up how low-level device drivers go about handling protection information. The SCSI midlayer provides a set of flags and helpers but not all drivers currently use them. This series updates the drivers to use the proper calls to query things like the protection interval, reference tag seed value, etc. In addition scsi_debug is enhanced to validate and store protection information the same way as a regular PI-capable disk drive or SSD. With these changes scsi_debug is now able to pass the same PI qualification tests as physical hardware. And finally: Bart's recent series [1] attempted to clean up some of the confusion between logical block addresses and block layer sector addresses. Part of Bart's work is included in this series as well as some fixes to the remainder of the scsi_get_lba() call sites. Sometimes it is appropriate use sectors, in other cases logical blocks are a better choice. For instance when printing something with a reference tag given that the latter typically contains the lower 32 bits of the LBA. The changes done in this series are also meant to facilitate removing the request pointer from struct scsi_cmnd [2]. By removing several references to struct request in the various drivers that transition will now be easier. [1] https://lore.kernel.org/linux-scsi/20210513223757.3938-1-bvanassche@xxxxxxx/ [2] https://lore.kernel.org/linux-scsi/20210524030856.2824-1-bvanassche@xxxxxxx/ -- Martin K. Petersen Oracle Linux Engineering Bart Van Assche (2): scsi: core: Introduce scsi_get_sector() scsi: iser: Use scsi_get_sector() instead of scsi_get_lba() Martin K. Petersen (13): scsi: core: Add scsi_prot_ref_tag() helper scsi: lpfc: Use the proper SCSI midlayer interfaces for PI scsi: qla2xxx: Use the proper SCSI midlayer interfaces for PI scsi: mpt3sas: Use the proper SCSI midlayer interfaces for PI scsi: mpi3mr: Use the proper SCSI midlayer interfaces for PI scsi: zfcp: Use the proper SCSI midlayer interfaces for PI scsi: isci: Use the proper SCSI midlayer interfaces for PI scsi: scsi_debug: Remove dump_sector() scsi: scsi_debug: Improve RDPROTECT/WRPROTECT handling scsi: core: Make scsi_get_lba() return the LBA scsi: core: Add helper to return number of logical blocks in a request scsi: lpfc: Switch to scsi_get_block_count() scsi: ufs: core: Use scsi_get_lba() to get LBA drivers/infiniband/ulp/iser/iser_verbs.c | 2 +- drivers/s390/scsi/zfcp_fsf.c | 4 +- drivers/scsi/isci/request.c | 4 +- drivers/scsi/lpfc/lpfc_scsi.c | 116 +++++++++-------------- drivers/scsi/mpi3mr/mpi3mr_os.c | 59 ++++-------- drivers/scsi/mpt3sas/mpt3sas_scsih.c | 28 ++---- drivers/scsi/qla2xxx/qla_iocb.c | 84 +++------------- drivers/scsi/scsi_debug.c | 112 +++++++++++++--------- drivers/scsi/ufs/ufshcd.c | 3 +- include/scsi/scsi_cmnd.h | 25 ++++- 10 files changed, 182 insertions(+), 255 deletions(-) -- 2.31.1