[SCSI] Deprecate SCSI_PROT_*_CONVERT operations

The checksum format is orthogonal to whether the protection information
is being passed on beyond the HBA or not.  It is perfectly valid to use
a non-T10 CRC with WRITE_STRIP and READ_INSERT.

Consequently it no longer makes sense to explicitly refer to the
conversion in the protection operation.  Update sd_dif and lpfc
accordingly.

Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Acked-by: Ihab Hamadi <Ihab.Hamadi@Emulex.Com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
This commit is contained in:
Martin K. Petersen
2009-09-18 17:32:59 -04:00
committed by James Bottomley
parent 6e883b0e42
commit c6af404215
3 changed files with 7 additions and 32 deletions

View File

@@ -364,15 +364,9 @@ void sd_dif_config_host(struct scsi_disk *sdkp)
*/
void sd_dif_op(struct scsi_cmnd *scmd, unsigned int dif, unsigned int dix, unsigned int type)
{
int csum_convert, prot_op;
int prot_op;
prot_op = 0;
/* Convert checksum? */
if (scsi_host_get_guard(scmd->device->host) != SHOST_DIX_GUARD_CRC)
csum_convert = 1;
else
csum_convert = 0;
prot_op = SCSI_PROT_NORMAL;
BUG_ON(dif && (scmd->cmnd[0] == READ_6 || scmd->cmnd[0] == WRITE_6));
@@ -382,10 +376,7 @@ void sd_dif_op(struct scsi_cmnd *scmd, unsigned int dif, unsigned int dix, unsig
case READ_12:
case READ_16:
if (dif && dix)
if (csum_convert)
prot_op = SCSI_PROT_READ_CONVERT;
else
prot_op = SCSI_PROT_READ_PASS;
prot_op = SCSI_PROT_READ_PASS;
else if (dif && !dix)
prot_op = SCSI_PROT_READ_STRIP;
else if (!dif && dix)
@@ -398,10 +389,7 @@ void sd_dif_op(struct scsi_cmnd *scmd, unsigned int dif, unsigned int dix, unsig
case WRITE_12:
case WRITE_16:
if (dif && dix)
if (csum_convert)
prot_op = SCSI_PROT_WRITE_CONVERT;
else
prot_op = SCSI_PROT_WRITE_PASS;
prot_op = SCSI_PROT_WRITE_PASS;
else if (dif && !dix)
prot_op = SCSI_PROT_WRITE_INSERT;
else if (!dif && dix)