[SCSI] sd: Detach DIF from block integrity infrastructure
So far we have only issued DIF commands if CONFIG_BLK_DEV_INTEGRITY is enabled. However, communication between initiator and target should be independent of protection information DMA. There are DIF-only host adapters coming out that will be able to take advantage of this. Move the relevant DIF bits to sd.c. Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
This commit is contained in:
committed by
James Bottomley
parent
c6af404215
commit
35e1a5d90b
@@ -798,9 +798,15 @@ static inline unsigned int scsi_host_get_prot(struct Scsi_Host *shost)
|
||||
static inline unsigned int scsi_host_dif_capable(struct Scsi_Host *shost, unsigned int target_type)
|
||||
{
|
||||
switch (target_type) {
|
||||
case 1: return shost->prot_capabilities & SHOST_DIF_TYPE1_PROTECTION;
|
||||
case 2: return shost->prot_capabilities & SHOST_DIF_TYPE2_PROTECTION;
|
||||
case 3: return shost->prot_capabilities & SHOST_DIF_TYPE3_PROTECTION;
|
||||
case 1:
|
||||
if (shost->prot_capabilities & SHOST_DIF_TYPE1_PROTECTION)
|
||||
return target_type;
|
||||
case 2:
|
||||
if (shost->prot_capabilities & SHOST_DIF_TYPE2_PROTECTION)
|
||||
return target_type;
|
||||
case 3:
|
||||
if (shost->prot_capabilities & SHOST_DIF_TYPE3_PROTECTION)
|
||||
return target_type;
|
||||
}
|
||||
|
||||
return 0;
|
||||
@@ -808,13 +814,14 @@ static inline unsigned int scsi_host_dif_capable(struct Scsi_Host *shost, unsign
|
||||
|
||||
static inline unsigned int scsi_host_dix_capable(struct Scsi_Host *shost, unsigned int target_type)
|
||||
{
|
||||
#if defined(CONFIG_BLK_DEV_INTEGRITY)
|
||||
switch (target_type) {
|
||||
case 0: return shost->prot_capabilities & SHOST_DIX_TYPE0_PROTECTION;
|
||||
case 1: return shost->prot_capabilities & SHOST_DIX_TYPE1_PROTECTION;
|
||||
case 2: return shost->prot_capabilities & SHOST_DIX_TYPE2_PROTECTION;
|
||||
case 3: return shost->prot_capabilities & SHOST_DIX_TYPE3_PROTECTION;
|
||||
}
|
||||
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user