diff options
Diffstat (limited to 'drivers/scsi/sd_dif.c')
-rw-r--r-- | drivers/scsi/sd_dif.c | 20 |
1 files changed, 4 insertions, 16 deletions
diff --git a/drivers/scsi/sd_dif.c b/drivers/scsi/sd_dif.c index 82f14a9482d0..84224dd21acf 100644 --- a/drivers/scsi/sd_dif.c +++ b/drivers/scsi/sd_dif.c | |||
@@ -364,15 +364,9 @@ void sd_dif_config_host(struct scsi_disk *sdkp) | |||
364 | */ | 364 | */ |
365 | void sd_dif_op(struct scsi_cmnd *scmd, unsigned int dif, unsigned int dix, unsigned int type) | 365 | void sd_dif_op(struct scsi_cmnd *scmd, unsigned int dif, unsigned int dix, unsigned int type) |
366 | { | 366 | { |
367 | int csum_convert, prot_op; | 367 | int prot_op; |
368 | 368 | ||
369 | prot_op = 0; | 369 | prot_op = SCSI_PROT_NORMAL; |
370 | |||
371 | /* Convert checksum? */ | ||
372 | if (scsi_host_get_guard(scmd->device->host) != SHOST_DIX_GUARD_CRC) | ||
373 | csum_convert = 1; | ||
374 | else | ||
375 | csum_convert = 0; | ||
376 | 370 | ||
377 | BUG_ON(dif && (scmd->cmnd[0] == READ_6 || scmd->cmnd[0] == WRITE_6)); | 371 | BUG_ON(dif && (scmd->cmnd[0] == READ_6 || scmd->cmnd[0] == WRITE_6)); |
378 | 372 | ||
@@ -382,10 +376,7 @@ void sd_dif_op(struct scsi_cmnd *scmd, unsigned int dif, unsigned int dix, unsig | |||
382 | case READ_12: | 376 | case READ_12: |
383 | case READ_16: | 377 | case READ_16: |
384 | if (dif && dix) | 378 | if (dif && dix) |
385 | if (csum_convert) | 379 | prot_op = SCSI_PROT_READ_PASS; |
386 | prot_op = SCSI_PROT_READ_CONVERT; | ||
387 | else | ||
388 | prot_op = SCSI_PROT_READ_PASS; | ||
389 | else if (dif && !dix) | 380 | else if (dif && !dix) |
390 | prot_op = SCSI_PROT_READ_STRIP; | 381 | prot_op = SCSI_PROT_READ_STRIP; |
391 | else if (!dif && dix) | 382 | else if (!dif && dix) |
@@ -398,10 +389,7 @@ void sd_dif_op(struct scsi_cmnd *scmd, unsigned int dif, unsigned int dix, unsig | |||
398 | case WRITE_12: | 389 | case WRITE_12: |
399 | case WRITE_16: | 390 | case WRITE_16: |
400 | if (dif && dix) | 391 | if (dif && dix) |
401 | if (csum_convert) | 392 | prot_op = SCSI_PROT_WRITE_PASS; |
402 | prot_op = SCSI_PROT_WRITE_CONVERT; | ||
403 | else | ||
404 | prot_op = SCSI_PROT_WRITE_PASS; | ||
405 | else if (dif && !dix) | 393 | else if (dif && !dix) |
406 | prot_op = SCSI_PROT_WRITE_INSERT; | 394 | prot_op = SCSI_PROT_WRITE_INSERT; |
407 | else if (!dif && dix) | 395 | else if (!dif && dix) |