aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/target
diff options
context:
space:
mode:
authorNicholas Bellinger <nab@linux-iscsi.org>2015-03-28 02:15:04 -0400
committerNicholas Bellinger <nab@linux-iscsi.org>2015-04-08 02:27:45 -0400
commit1762742f3fd276570456eb669922e34e11bd98b7 (patch)
treee16588ef7c676b30113e341bf059f2c6991d757b /drivers/target
parent6f16ec43e06e37dc5c3bed52ae76803c13ee2f8c (diff)
target/rd: Add checks for backend DIF emulation
Make sure that RAMDISK only attempts to use backend DIF emulation when it's actually enabled at device level. Cc: Martin Petersen <martin.petersen@oracle.com> Cc: Sagi Grimberg <sagig@mellanox.com> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Diffstat (limited to 'drivers/target')
-rw-r--r--drivers/target/target_core_rd.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/target/target_core_rd.c b/drivers/target/target_core_rd.c
index 98e83ac5661b..bedd4a18b3ca 100644
--- a/drivers/target/target_core_rd.c
+++ b/drivers/target/target_core_rd.c
@@ -419,7 +419,8 @@ rd_execute_rw(struct se_cmd *cmd, struct scatterlist *sgl, u32 sgl_nents,
419 data_direction == DMA_FROM_DEVICE ? "Read" : "Write", 419 data_direction == DMA_FROM_DEVICE ? "Read" : "Write",
420 cmd->t_task_lba, rd_size, rd_page, rd_offset); 420 cmd->t_task_lba, rd_size, rd_page, rd_offset);
421 421
422 if (cmd->prot_type && data_direction == DMA_TO_DEVICE) { 422 if (cmd->prot_type && se_dev->dev_attrib.pi_prot_type &&
423 data_direction == DMA_TO_DEVICE) {
423 struct rd_dev_sg_table *prot_table; 424 struct rd_dev_sg_table *prot_table;
424 struct scatterlist *prot_sg; 425 struct scatterlist *prot_sg;
425 u32 sectors = cmd->data_length / se_dev->dev_attrib.block_size; 426 u32 sectors = cmd->data_length / se_dev->dev_attrib.block_size;
@@ -502,7 +503,8 @@ rd_execute_rw(struct se_cmd *cmd, struct scatterlist *sgl, u32 sgl_nents,
502 } 503 }
503 sg_miter_stop(&m); 504 sg_miter_stop(&m);
504 505
505 if (cmd->prot_type && data_direction == DMA_FROM_DEVICE) { 506 if (cmd->prot_type && se_dev->dev_attrib.pi_prot_type &&
507 data_direction == DMA_FROM_DEVICE) {
506 struct rd_dev_sg_table *prot_table; 508 struct rd_dev_sg_table *prot_table;
507 struct scatterlist *prot_sg; 509 struct scatterlist *prot_sg;
508 u32 sectors = cmd->data_length / se_dev->dev_attrib.block_size; 510 u32 sectors = cmd->data_length / se_dev->dev_attrib.block_size;