scsi: isci: Use the proper SCSI midlayer interfaces for PI
authorMartin K. Petersen <martin.petersen@oracle.com>
Fri, 6 Aug 2021 04:00:20 +0000 (00:00 -0400)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 12 Aug 2021 02:25:43 +0000 (22:25 -0400)
Use scsi_prot_ref_tag() instead of scsi_get_lba() to get the reference tag
for a given I/O.

Link: https://lore.kernel.org/r/20210806040023.5355-3-martin.petersen@oracle.com
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/isci/request.c

index e1ff79464131fcd4c1a7b6b071747b3de975a889..fcaa84a3c21024b5431d6504c3f865891e4e4164 100644 (file)
@@ -341,7 +341,7 @@ static void scu_ssp_ireq_dif_insert(struct isci_request *ireq, u8 type, u8 op)
        tc->reserved_E8_0 = 0;
 
        if ((type & SCSI_PROT_DIF_TYPE1) || (type & SCSI_PROT_DIF_TYPE2))
-               tc->ref_tag_seed_gen = scsi_get_lba(scmd) & 0xffffffff;
+               tc->ref_tag_seed_gen = scsi_prot_ref_tag(scmd);
        else if (type & SCSI_PROT_DIF_TYPE3)
                tc->ref_tag_seed_gen = 0;
 }
@@ -369,7 +369,7 @@ static void scu_ssp_ireq_dif_strip(struct isci_request *ireq, u8 type, u8 op)
        tc->app_tag_gen = 0;
 
        if ((type & SCSI_PROT_DIF_TYPE1) || (type & SCSI_PROT_DIF_TYPE2))
-               tc->ref_tag_seed_verify = scsi_get_lba(scmd) & 0xffffffff;
+               tc->ref_tag_seed_verify = scsi_prot_ref_tag(scmd);
        else if (type & SCSI_PROT_DIF_TYPE3)
                tc->ref_tag_seed_verify = 0;