aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/sd_dif.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/sd_dif.c')
-rw-r--r--drivers/scsi/sd_dif.c65
1 files changed, 0 insertions, 65 deletions
diff --git a/drivers/scsi/sd_dif.c b/drivers/scsi/sd_dif.c
index 82f14a9482d0..88da97745710 100644
--- a/drivers/scsi/sd_dif.c
+++ b/drivers/scsi/sd_dif.c
@@ -320,15 +320,6 @@ void sd_dif_config_host(struct scsi_disk *sdkp)
320 dif = 0; dix = 1; 320 dif = 0; dix = 1;
321 } 321 }
322 322
323 if (type) {
324 if (dif)
325 sd_printk(KERN_NOTICE, sdkp,
326 "Enabling DIF Type %d protection\n", type);
327 else
328 sd_printk(KERN_NOTICE, sdkp,
329 "Disabling DIF Type %d protection\n", type);
330 }
331
332 if (!dix) 323 if (!dix)
333 return; 324 return;
334 325
@@ -360,62 +351,6 @@ void sd_dif_config_host(struct scsi_disk *sdkp)
360} 351}
361 352
362/* 353/*
363 * DIF DMA operation magic decoder ring.
364 */
365void sd_dif_op(struct scsi_cmnd *scmd, unsigned int dif, unsigned int dix, unsigned int type)
366{
367 int csum_convert, prot_op;
368
369 prot_op = 0;
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
377 BUG_ON(dif && (scmd->cmnd[0] == READ_6 || scmd->cmnd[0] == WRITE_6));
378
379 switch (scmd->cmnd[0]) {
380 case READ_6:
381 case READ_10:
382 case READ_12:
383 case READ_16:
384 if (dif && dix)
385 if (csum_convert)
386 prot_op = SCSI_PROT_READ_CONVERT;
387 else
388 prot_op = SCSI_PROT_READ_PASS;
389 else if (dif && !dix)
390 prot_op = SCSI_PROT_READ_STRIP;
391 else if (!dif && dix)
392 prot_op = SCSI_PROT_READ_INSERT;
393
394 break;
395
396 case WRITE_6:
397 case WRITE_10:
398 case WRITE_12:
399 case WRITE_16:
400 if (dif && dix)
401 if (csum_convert)
402 prot_op = SCSI_PROT_WRITE_CONVERT;
403 else
404 prot_op = SCSI_PROT_WRITE_PASS;
405 else if (dif && !dix)
406 prot_op = SCSI_PROT_WRITE_INSERT;
407 else if (!dif && dix)
408 prot_op = SCSI_PROT_WRITE_STRIP;
409
410 break;
411 }
412
413 scsi_set_prot_op(scmd, prot_op);
414 if (dif)
415 scsi_set_prot_type(scmd, type);
416}
417
418/*
419 * The virtual start sector is the one that was originally submitted 354 * The virtual start sector is the one that was originally submitted
420 * by the block layer. Due to partitioning, MD/DM cloning, etc. the 355 * by the block layer. Due to partitioning, MD/DM cloning, etc. the
421 * actual physical start sector is likely to be different. Remap 356 * actual physical start sector is likely to be different. Remap