From: Sagi Grimberg <sagig@dev.mellanox.co.il>
To: "Nicholas A. Bellinger" <nab@daterainc.com>,
target-devel <target-devel@vger.kernel.org>
Cc: linux-scsi <linux-scsi@vger.kernel.org>,
"Martin K. Petersen" <martin.petersen@oracle.com>,
Sagi Grimberg <sagig@mellanox.com>,
Quinn Tran <quinn.tran@qlogic.com>,
Nicholas Bellinger <nab@linux-iscsi.org>,
Christoph Hellwig <hch@lst.de>
Subject: Re: [PATCH-v2 01/15] target: Convert DIF emulation to use cmd->prot_type
Date: Mon, 30 Mar 2015 10:38:37 +0300 [thread overview]
Message-ID: <5518FD7D.8040209@dev.mellanox.co.il> (raw)
In-Reply-To: <1427686104-14231-2-git-send-email-nab@daterainc.com>
On 3/30/2015 6:28 AM, Nicholas A. Bellinger wrote:
> From: Nicholas Bellinger <nab@linux-iscsi.org>
>
> This patch changes existing DIF emulation to check the command descriptor's
> prot_type, instead of what the backend device is exposing in pi_prot_type.
>
> Since this value is already set in sbc_check_prot(), go ahead and use it to
> allow protected fabrics to function with unprotected devices.
>
> Cc: Martin Petersen <martin.petersen@oracle.com>
> Cc: Sagi Grimberg <sagig@mellanox.com>
> Cc: Christoph Hellwig <hch@lst.de>
> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
> ---
> drivers/target/target_core_sbc.c | 13 +++++++------
> 1 file changed, 7 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/target/target_core_sbc.c b/drivers/target/target_core_sbc.c
> index 9a2f9d3..95a7a74 100644
> --- a/drivers/target/target_core_sbc.c
> +++ b/drivers/target/target_core_sbc.c
> @@ -1167,7 +1167,7 @@ sbc_dif_generate(struct se_cmd *cmd)
> sdt = paddr + offset;
> sdt->guard_tag = cpu_to_be16(crc_t10dif(daddr + j,
> dev->dev_attrib.block_size));
> - if (dev->dev_attrib.pi_prot_type == TARGET_DIF_TYPE1_PROT)
> + if (cmd->prot_type == TARGET_DIF_TYPE1_PROT)
> sdt->ref_tag = cpu_to_be32(sector & 0xffffffff);
> sdt->app_tag = 0;
>
> @@ -1186,9 +1186,10 @@ sbc_dif_generate(struct se_cmd *cmd)
> }
>
> static sense_reason_t
> -sbc_dif_v1_verify(struct se_device *dev, struct se_dif_v1_tuple *sdt,
> +sbc_dif_v1_verify(struct se_cmd *cmd, struct se_dif_v1_tuple *sdt,
> const void *p, sector_t sector, unsigned int ei_lba)
> {
> + struct se_device *dev = cmd->se_dev;
> int block_size = dev->dev_attrib.block_size;
> __be16 csum;
>
> @@ -1201,7 +1202,7 @@ sbc_dif_v1_verify(struct se_device *dev, struct se_dif_v1_tuple *sdt,
> return TCM_LOGICAL_BLOCK_GUARD_CHECK_FAILED;
> }
>
> - if (dev->dev_attrib.pi_prot_type == TARGET_DIF_TYPE1_PROT &&
> + if (cmd->prot_type == TARGET_DIF_TYPE1_PROT &&
> be32_to_cpu(sdt->ref_tag) != (sector & 0xffffffff)) {
> pr_err("DIFv1 Type 1 reference failed on sector: %llu tag: 0x%08x"
> " sector MSB: 0x%08x\n", (unsigned long long)sector,
> @@ -1209,7 +1210,7 @@ sbc_dif_v1_verify(struct se_device *dev, struct se_dif_v1_tuple *sdt,
> return TCM_LOGICAL_BLOCK_REF_TAG_CHECK_FAILED;
> }
>
> - if (dev->dev_attrib.pi_prot_type == TARGET_DIF_TYPE2_PROT &&
> + if (cmd->prot_type == TARGET_DIF_TYPE2_PROT &&
> be32_to_cpu(sdt->ref_tag) != ei_lba) {
> pr_err("DIFv1 Type 2 reference failed on sector: %llu tag: 0x%08x"
> " ei_lba: 0x%08x\n", (unsigned long long)sector,
> @@ -1293,7 +1294,7 @@ sbc_dif_verify_write(struct se_cmd *cmd, sector_t start, unsigned int sectors,
> (unsigned long long)sector, sdt->guard_tag,
> sdt->app_tag, be32_to_cpu(sdt->ref_tag));
>
> - rc = sbc_dif_v1_verify(dev, sdt, daddr + j, sector,
> + rc = sbc_dif_v1_verify(cmd, sdt, daddr + j, sector,
> ei_lba);
> if (rc) {
> kunmap_atomic(paddr);
> @@ -1354,7 +1355,7 @@ __sbc_dif_verify_read(struct se_cmd *cmd, sector_t start, unsigned int sectors,
> continue;
> }
>
> - rc = sbc_dif_v1_verify(dev, sdt, daddr + j, sector,
> + rc = sbc_dif_v1_verify(cmd, sdt, daddr + j, sector,
> ei_lba);
> if (rc) {
> kunmap_atomic(paddr);
>
Looks good.
Reviewed-by: Sagi Grimberg <sagig@mellanox.com>
next prev parent reply other threads:[~2015-03-30 7:38 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-30 3:28 [PATCH-v2 00/15] target: Add WRITE_STRIP + READ_INSERT support Nicholas A. Bellinger
2015-03-30 3:28 ` [PATCH-v2 01/15] target: Convert DIF emulation to use cmd->prot_type Nicholas A. Bellinger
2015-03-30 7:38 ` Sagi Grimberg [this message]
2015-04-07 23:22 ` Martin K. Petersen
2015-03-30 3:28 ` [PATCH-v2 02/15] target: Add protected fabric + unprotected device support Nicholas A. Bellinger
2015-03-30 7:51 ` Sagi Grimberg
2015-04-01 5:49 ` Nicholas A. Bellinger
2015-04-01 9:04 ` Sagi Grimberg
2015-04-02 4:40 ` Nicholas A. Bellinger
2015-04-07 23:27 ` Martin K. Petersen
2015-04-08 7:40 ` Nicholas A. Bellinger
2015-04-09 21:45 ` Martin K. Petersen
2015-04-10 18:59 ` Nicholas A. Bellinger
2015-04-13 10:11 ` Sagi Grimberg
2015-04-14 1:15 ` Martin K. Petersen
2015-03-30 3:28 ` [PATCH-v2 03/15] target: Update SPC/SBC emulation for sess_prot_type Nicholas A. Bellinger
2015-03-30 7:53 ` Sagi Grimberg
2015-04-07 23:28 ` Martin K. Petersen
2015-03-30 3:28 ` [PATCH-v2 04/15] target: Move cmd->prot_op check into target_check_write_prot Nicholas A. Bellinger
2015-03-30 7:57 ` Sagi Grimberg
2015-04-01 5:54 ` Nicholas A. Bellinger
2015-04-07 23:30 ` Martin K. Petersen
2015-03-30 3:28 ` [PATCH-v2 05/15] target: Add internal WRITE_STRIP support Nicholas A. Bellinger
2015-03-30 8:01 ` Sagi Grimberg
2015-04-01 5:59 ` Nicholas A. Bellinger
2015-04-07 23:32 ` Martin K. Petersen
2015-03-30 3:28 ` [PATCH-v2 06/15] target: Move cmd->prot_op check into target_check_read_prot Nicholas A. Bellinger
2015-03-30 8:02 ` Sagi Grimberg
2015-04-01 6:03 ` Nicholas A. Bellinger
2015-04-07 23:33 ` Martin K. Petersen
2015-03-30 3:28 ` [PATCH-v2 07/15] target: Add internal READ_INSERT support Nicholas A. Bellinger
2015-04-07 23:34 ` Martin K. Petersen
2015-03-30 3:28 ` [PATCH-v2 08/15] target/file: Add checks for backend DIF emulation Nicholas A. Bellinger
2015-03-30 8:05 ` Sagi Grimberg
2015-03-30 3:28 ` [PATCH-v2 09/15] target/iblock: " Nicholas A. Bellinger
2015-03-30 3:28 ` [PATCH-v2 10/15] target/rd: " Nicholas A. Bellinger
2015-03-30 3:28 ` [PATCH-v2 11/15] loopback: Add fabric_prot_type attribute support Nicholas A. Bellinger
2015-03-30 8:07 ` Sagi Grimberg
2015-04-01 6:22 ` Nicholas A. Bellinger
2015-03-30 3:28 ` [PATCH-v2 12/15] vhost/scsi: " Nicholas A. Bellinger
2015-03-30 3:28 ` [PATCH-v2 13/15] tcm_qla2xxx: Set TARGET_PROT_ALL for sup_prot_ops Nicholas A. Bellinger
2015-03-30 3:28 ` [PATCH-v2 14/15] tcm_qla2xxx: Add fabric_prot_type attribute support Nicholas A. Bellinger
2015-03-30 3:28 ` [PATCH-v2 15/15] iscsi/iser-target: " Nicholas A. Bellinger
2015-03-30 8:11 ` Sagi Grimberg
2015-04-01 6:27 ` Nicholas A. Bellinger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5518FD7D.8040209@dev.mellanox.co.il \
--to=sagig@dev.mellanox.co.il \
--cc=hch@lst.de \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=nab@daterainc.com \
--cc=nab@linux-iscsi.org \
--cc=quinn.tran@qlogic.com \
--cc=sagig@mellanox.com \
--cc=target-devel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.