|
@@ -1162,7 +1162,7 @@ sbc_dif_verify_read(struct se_cmd *cmd, sector_t start, unsigned int sectors,
|
|
|
{
|
|
|
struct se_device *dev = cmd->se_dev;
|
|
|
struct se_dif_v1_tuple *sdt;
|
|
|
- struct scatterlist *dsg;
|
|
|
+ struct scatterlist *dsg, *psg = sg;
|
|
|
sector_t sector = start;
|
|
|
void *daddr, *paddr;
|
|
|
int i, j, offset = sg_off;
|
|
@@ -1170,14 +1170,14 @@ sbc_dif_verify_read(struct se_cmd *cmd, sector_t start, unsigned int sectors,
|
|
|
|
|
|
for_each_sg(cmd->t_data_sg, dsg, cmd->t_data_nents, i) {
|
|
|
daddr = kmap_atomic(sg_page(dsg)) + dsg->offset;
|
|
|
- paddr = kmap_atomic(sg_page(sg)) + sg->offset;
|
|
|
+ paddr = kmap_atomic(sg_page(psg)) + sg->offset;
|
|
|
|
|
|
for (j = 0; j < dsg->length; j += dev->dev_attrib.block_size) {
|
|
|
|
|
|
- if (offset >= sg->length) {
|
|
|
+ if (offset >= psg->length) {
|
|
|
kunmap_atomic(paddr);
|
|
|
- sg = sg_next(sg);
|
|
|
- paddr = kmap_atomic(sg_page(sg)) + sg->offset;
|
|
|
+ psg = sg_next(psg);
|
|
|
+ paddr = kmap_atomic(sg_page(psg)) + psg->offset;
|
|
|
offset = 0;
|
|
|
}
|
|
|
|