]> Pileus Git - ~andy/linux/blobdiff - drivers/scsi/lpfc/lpfc_scsi.c
Merge tag 'tegra-for-3.8-fixes-for-rc1' of git://git.kernel.org/pub/scm/linux/kernel...
[~andy/linux] / drivers / scsi / lpfc / lpfc_scsi.c
index fd2ff5a9e18c1c0d8697818c897a527b4b257ba1..60e5a177644ce4215e84d417dc27df2e5937b1d0 100644 (file)
@@ -3227,6 +3227,21 @@ lpfc_bg_scsi_prep_dma_buf_s4(struct lpfc_hba *phba,
                }
        }
 
+       switch (scsi_get_prot_op(scsi_cmnd)) {
+       case SCSI_PROT_WRITE_STRIP:
+       case SCSI_PROT_READ_STRIP:
+               lpfc_cmd->cur_iocbq.iocb_flag |= LPFC_IO_DIF_STRIP;
+               break;
+       case SCSI_PROT_WRITE_INSERT:
+       case SCSI_PROT_READ_INSERT:
+               lpfc_cmd->cur_iocbq.iocb_flag |= LPFC_IO_DIF_INSERT;
+               break;
+       case SCSI_PROT_WRITE_PASS:
+       case SCSI_PROT_READ_PASS:
+               lpfc_cmd->cur_iocbq.iocb_flag |= LPFC_IO_DIF_PASS;
+               break;
+       }
+
        fcpdl = lpfc_bg_scsi_adjust_dl(phba, lpfc_cmd);
 
        fcp_cmnd->fcpDl = be32_to_cpu(fcpdl);
@@ -3236,7 +3251,6 @@ lpfc_bg_scsi_prep_dma_buf_s4(struct lpfc_hba *phba,
         * we need to set word 4 of IOCB here
         */
        iocb_cmd->un.fcpi.fcpi_parm = fcpdl;
-       lpfc_cmd->cur_iocbq.iocb_flag |= LPFC_IO_DIF;
 
        return 0;
 err: