Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 19e420bb authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Sagi Grimberg
Browse files

nvme-fc: use blk_rq_nr_phys_segments



Without this deallocate won't work properly due to the mismatch
of the bio/request size and the actual payload size.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarJames Smart <james.smart@broadcom.com>
Reviewed-by: default avatarJohannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: default avatarSagi Grimberg <sagi@grimberg.me>
parent 748ff840
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -1663,13 +1663,13 @@ nvme_fc_map_data(struct nvme_fc_ctrl *ctrl, struct request *rq,
		return 0;
		return 0;


	freq->sg_table.sgl = freq->first_sgl;
	freq->sg_table.sgl = freq->first_sgl;
	ret = sg_alloc_table_chained(&freq->sg_table, rq->nr_phys_segments,
	ret = sg_alloc_table_chained(&freq->sg_table,
			freq->sg_table.sgl);
			blk_rq_nr_phys_segments(rq), freq->sg_table.sgl);
	if (ret)
	if (ret)
		return -ENOMEM;
		return -ENOMEM;


	op->nents = blk_rq_map_sg(rq->q, rq, freq->sg_table.sgl);
	op->nents = blk_rq_map_sg(rq->q, rq, freq->sg_table.sgl);
	WARN_ON(op->nents > rq->nr_phys_segments);
	WARN_ON(op->nents > blk_rq_nr_phys_segments(rq));
	dir = (rq_data_dir(rq) == WRITE) ? DMA_TO_DEVICE : DMA_FROM_DEVICE;
	dir = (rq_data_dir(rq) == WRITE) ? DMA_TO_DEVICE : DMA_FROM_DEVICE;
	freq->sg_cnt = fc_dma_map_sg(ctrl->lport->dev, freq->sg_table.sgl,
	freq->sg_cnt = fc_dma_map_sg(ctrl->lport->dev, freq->sg_table.sgl,
				op->nents, dir);
				op->nents, dir);