nvme-fc: use blk_rq_nr_phys_segments
Subsystems (2)
Christoph Hellwig
maintainerPATCH 1/1 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.
--- drivers/nvme/host/fc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
drivers/nvme/host/fc.c +3 -3
@@ -1663,13 +1663,13 @@ nvme_fc_map_data(struct nvme_fc_ctrl *ctrl, struct request *rq,return 0 ; freq->sg_table.sgl = freq->first_sgl; - ret =sg_alloc_table_chained (&freq->sg_table, rq->nr_phys_segments, - freq->sg_table.sgl); + ret =sg_alloc_table_chained (&freq->sg_table, +blk_rq_nr_phys_segments (rq), freq->sg_table.sgl);if (ret)return -ENOMEM ; 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 ; freq->sg_cnt =fc_dma_map_sg (ctrl->lport->dev, freq->sg_table.sgl, op->nents, dir);
Signature · 1 line
2.1.4
Christoph Hellwig
maintainerPATCH 1/1 nvme-fc: use blk_rq_nr_phys_segments
Folks, can I get a review fore this?
Without it we'll reliably crash on a discard on nvme-fc, so we should get this into 4.10.
Quoted 37 lines · Christoph Hellwig
Without this deallocate won't work properly due to the mismatch of the bio/request size and the actual payload size.
Signed-off-by Christoph Hellwig <hch at lst.de>--- drivers/nvme/host/fc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)drivers/nvme/host/fc.c +3
-3@@ -1663,13 +1663,13 @@ nvme_fc_map_data(struct nvme_fc_ctrl *ctrl, struct request *rq,return 0 ; freq->sg_table.sgl = freq->first_sgl; - ret =sg_alloc_table_chained (&freq->sg_table, rq->nr_phys_segments, - freq->sg_table.sgl); + ret =sg_alloc_table_chained (&freq->sg_table, +blk_rq_nr_phys_segments (rq), freq->sg_table.sgl);if (ret)return -ENOMEM ; 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 ; freq->sg_cnt =fc_dma_map_sg (ctrl->lport->dev, freq->sg_table.sgl, op->nents, dir);Signature · 7 lines
2.1.4 _______________________________________________ Linux-nvme mailing list Linux-nvme at lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-nvme
---end quoted text---
PATCH 1/1 nvme-fc: use blk_rq_nr_phys_segments
In reply to Christoph HellwigQuoted 5 lines · Christoph Hellwig
Without this deallocate won't work properly due to the mismatch of the bio/request size and the actual payload size.
Signed-off-by Christoph Hellwig <hch at lst.de>---
Might be worth adding a:
as well.
Signature · 6 lines
Johannes Thumshirn Storage jthumshirn at suse.de +49 911 74053 689 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 N?rnberg GF: Felix Imend?rffer, Jane Smithard, Graham Norton HRB 21284 (AG N?rnberg) Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850
PATCH 1/1 nvme-fc: use blk_rq_nr_phys_segments
In reply to Christoph HellwigQuoted 6 lines · Christoph Hellwig
Without this deallocate won't work properly due to the mismatch of the bio/request size and the actual payload size.
Signed-off-by Christoph Hellwig <hch at lst.de>---
looks fine to me.
-- james