aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/target/target_core_sbc.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/target/target_core_sbc.c b/drivers/target/target_core_sbc.c
index a4489444ffbc..ef1a58a134aa 100644
--- a/drivers/target/target_core_sbc.c
+++ b/drivers/target/target_core_sbc.c
@@ -1074,7 +1074,7 @@ sbc_dif_copy_prot(struct se_cmd *cmd, unsigned int sectors, bool read,
1074 struct scatterlist *psg; 1074 struct scatterlist *psg;
1075 void *paddr, *addr; 1075 void *paddr, *addr;
1076 unsigned int i, len, left; 1076 unsigned int i, len, left;
1077 unsigned int offset = 0; 1077 unsigned int offset = sg_off;
1078 1078
1079 left = sectors * dev->prot_length; 1079 left = sectors * dev->prot_length;
1080 1080
@@ -1084,11 +1084,10 @@ sbc_dif_copy_prot(struct se_cmd *cmd, unsigned int sectors, bool read,
1084 if (offset >= sg->length) { 1084 if (offset >= sg->length) {
1085 sg = sg_next(sg); 1085 sg = sg_next(sg);
1086 offset = 0; 1086 offset = 0;
1087 sg_off = sg->offset;
1088 } 1087 }
1089 1088
1090 paddr = kmap_atomic(sg_page(psg)) + psg->offset; 1089 paddr = kmap_atomic(sg_page(psg)) + psg->offset;
1091 addr = kmap_atomic(sg_page(sg)) + sg_off; 1090 addr = kmap_atomic(sg_page(sg)) + sg->offset + offset;
1092 1091
1093 if (read) 1092 if (read)
1094 memcpy(paddr, addr, len); 1093 memcpy(paddr, addr, len);