This patchset introduces support to the driver for DIF/DIX. We are making DIX support as RFC for now, based on issues discussed in the following: https://marc.info/?l=linux-scsi&m=154357719329297&w=4 and https://marc.info/?l=linux-scsi&m=154406987703456&w=2 We will only support PI in v3 hw at the moment, even though previous hw versions also support it. The series is broken down as follows: - Fix pre-existing sparse warnings - Tidy sg table size config - Some tidy-up to accept PI support - Add components for PI support for main and v3 driver Differences: v3->v4: - re-add DIX support as RFC - do not commit please! - also DIX support is labelled experimental in the driver v2->v3: - fix sparse warnings - drop DIX support v1->v2: - drop scsi_prot_op_normal() John Garry (1): scsi: hisi_sas: Fix warnings detected by sparse Xiang Chen (4): scsi: hisi_sas: Relocate some code to reduce complexity scsi: hisi_sas: Make sg_tablesize consistent value scsi: hisi_sas: Add support for DIF feature for v3 hw scsi: hisi_sas: Add support for DIX feature for v3 hw as experimental drivers/scsi/hisi_sas/hisi_sas.h | 21 ++- drivers/scsi/hisi_sas/hisi_sas_main.c | 246 ++++++++++++++++++++++++--------- drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 17 +-- drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 68 +++++---- drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 243 +++++++++++++++++++++++++++++--- 5 files changed, 464 insertions(+), 131 deletions(-) -- 1.9.1