diff options
author | Sagi Grimberg <sagig@mellanox.com> | 2014-08-13 12:54:33 -0400 |
---|---|---|
committer | Roland Dreier <roland@purestorage.com> | 2014-10-09 03:10:53 -0400 |
commit | 92792c0a197db85e9d3039b59d2211ed0157e824 (patch) | |
tree | f9793d4bbeda1efe03f3b3a83f7c1d82c05eec59 | |
parent | 142537f4e5f7ffd3e34b0c46646ac9cb5d986d06 (diff) |
IB/iser: Centralize ib_sig_domain settings
Later there will be more parameters to set, so we want to do it in a
centralized place.
This patch does not change any functionality.
Signed-off-by: Sagi Grimberg <sagig@mellanox.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
-rw-r--r-- | drivers/infiniband/ulp/iser/iser_memory.c | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/drivers/infiniband/ulp/iser/iser_memory.c b/drivers/infiniband/ulp/iser/iser_memory.c index d4f12245867e..d9ed6234c505 100644 --- a/drivers/infiniband/ulp/iser/iser_memory.c +++ b/drivers/infiniband/ulp/iser/iser_memory.c | |||
@@ -457,44 +457,44 @@ scsi2ib_prot_type(unsigned char prot_type) | |||
457 | } | 457 | } |
458 | } | 458 | } |
459 | 459 | ||
460 | static inline void | ||
461 | iser_set_dif_domain(struct scsi_cmnd *sc, struct ib_sig_attrs *sig_attrs, | ||
462 | struct ib_sig_domain *domain) | ||
463 | { | ||
464 | unsigned char scsi_ptype = scsi_get_prot_type(sc); | ||
465 | |||
466 | domain->sig.dif.type = scsi2ib_prot_type(scsi_ptype); | ||
467 | domain->sig.dif.pi_interval = sc->device->sector_size; | ||
468 | domain->sig.dif.ref_tag = scsi_get_lba(sc) & 0xffffffff; | ||
469 | }; | ||
460 | 470 | ||
461 | static int | 471 | static int |
462 | iser_set_sig_attrs(struct scsi_cmnd *sc, struct ib_sig_attrs *sig_attrs) | 472 | iser_set_sig_attrs(struct scsi_cmnd *sc, struct ib_sig_attrs *sig_attrs) |
463 | { | 473 | { |
464 | unsigned char scsi_ptype = scsi_get_prot_type(sc); | ||
465 | |||
466 | sig_attrs->mem.sig_type = IB_SIG_TYPE_T10_DIF; | 474 | sig_attrs->mem.sig_type = IB_SIG_TYPE_T10_DIF; |
467 | sig_attrs->wire.sig_type = IB_SIG_TYPE_T10_DIF; | 475 | sig_attrs->wire.sig_type = IB_SIG_TYPE_T10_DIF; |
468 | sig_attrs->mem.sig.dif.pi_interval = sc->device->sector_size; | ||
469 | sig_attrs->wire.sig.dif.pi_interval = sc->device->sector_size; | ||
470 | 476 | ||
471 | switch (scsi_get_prot_op(sc)) { | 477 | switch (scsi_get_prot_op(sc)) { |
472 | case SCSI_PROT_WRITE_INSERT: | 478 | case SCSI_PROT_WRITE_INSERT: |
473 | case SCSI_PROT_READ_STRIP: | 479 | case SCSI_PROT_READ_STRIP: |
474 | sig_attrs->mem.sig.dif.type = IB_T10DIF_NONE; | 480 | sig_attrs->mem.sig.dif.type = IB_T10DIF_NONE; |
475 | sig_attrs->wire.sig.dif.type = scsi2ib_prot_type(scsi_ptype); | 481 | iser_set_dif_domain(sc, sig_attrs, &sig_attrs->wire); |
476 | sig_attrs->wire.sig.dif.bg_type = IB_T10DIF_CRC; | 482 | sig_attrs->wire.sig.dif.bg_type = IB_T10DIF_CRC; |
477 | sig_attrs->wire.sig.dif.ref_tag = scsi_get_lba(sc) & | ||
478 | 0xffffffff; | ||
479 | break; | 483 | break; |
480 | case SCSI_PROT_READ_INSERT: | 484 | case SCSI_PROT_READ_INSERT: |
481 | case SCSI_PROT_WRITE_STRIP: | 485 | case SCSI_PROT_WRITE_STRIP: |
482 | sig_attrs->mem.sig.dif.type = scsi2ib_prot_type(scsi_ptype); | ||
483 | sig_attrs->mem.sig.dif.bg_type = IB_T10DIF_CRC; | ||
484 | sig_attrs->mem.sig.dif.ref_tag = scsi_get_lba(sc) & | ||
485 | 0xffffffff; | ||
486 | sig_attrs->wire.sig.dif.type = IB_T10DIF_NONE; | 486 | sig_attrs->wire.sig.dif.type = IB_T10DIF_NONE; |
487 | iser_set_dif_domain(sc, sig_attrs, &sig_attrs->mem); | ||
488 | sig_attrs->mem.sig.dif.bg_type = iser_pi_guard ? IB_T10DIF_CSUM : | ||
489 | IB_T10DIF_CRC; | ||
487 | break; | 490 | break; |
488 | case SCSI_PROT_READ_PASS: | 491 | case SCSI_PROT_READ_PASS: |
489 | case SCSI_PROT_WRITE_PASS: | 492 | case SCSI_PROT_WRITE_PASS: |
490 | sig_attrs->mem.sig.dif.type = scsi2ib_prot_type(scsi_ptype); | 493 | iser_set_dif_domain(sc, sig_attrs, &sig_attrs->wire); |
491 | sig_attrs->mem.sig.dif.bg_type = IB_T10DIF_CRC; | ||
492 | sig_attrs->mem.sig.dif.ref_tag = scsi_get_lba(sc) & | ||
493 | 0xffffffff; | ||
494 | sig_attrs->wire.sig.dif.type = scsi2ib_prot_type(scsi_ptype); | ||
495 | sig_attrs->wire.sig.dif.bg_type = IB_T10DIF_CRC; | 494 | sig_attrs->wire.sig.dif.bg_type = IB_T10DIF_CRC; |
496 | sig_attrs->wire.sig.dif.ref_tag = scsi_get_lba(sc) & | 495 | iser_set_dif_domain(sc, sig_attrs, &sig_attrs->mem); |
497 | 0xffffffff; | 496 | sig_attrs->mem.sig.dif.bg_type = iser_pi_guard ? IB_T10DIF_CSUM : |
497 | IB_T10DIF_CRC; | ||
498 | break; | 498 | break; |
499 | default: | 499 | default: |
500 | iser_err("Unsupported PI operation %d\n", | 500 | iser_err("Unsupported PI operation %d\n", |