nvme-fc: fix request private initialization
authorJames Smart <jsmart2021@gmail.com>
Sat, 27 Oct 2018 19:41:54 +0000 (12:41 -0700)
committerJens Axboe <axboe@kernel.dk>
Fri, 2 Nov 2018 14:14:45 +0000 (08:14 -0600)
The patch made to avoid Coverity reporting of out of bounds access
on aen_op moved the assignment of a pointer, leaving it null when it
was subsequently used to calculate a private pointer. Thus the private
pointer was bad.

Move/correct the private pointer initialization to be in sync with the
patch.

Fixes: 0d2bdf9f4134 ("nvme-fc: rework the request initialization code")
Signed-off-by: James Smart <jsmart2021@gmail.com>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/nvme/host/fc.c

index e52b9d3c0bd6cc22e1ac6b97736426267bb761f6..0b70c8bab045ac1a544cf3c72eb1a8766152fcd2 100644 (file)
@@ -1704,7 +1704,6 @@ __nvme_fc_init_request(struct nvme_fc_ctrl *ctrl,
        op->fcp_req.rspaddr = &op->rsp_iu;
        op->fcp_req.rsplen = sizeof(op->rsp_iu);
        op->fcp_req.done = nvme_fc_fcpio_done;
        op->fcp_req.rspaddr = &op->rsp_iu;
        op->fcp_req.rsplen = sizeof(op->rsp_iu);
        op->fcp_req.done = nvme_fc_fcpio_done;
-       op->fcp_req.private = &op->fcp_req.first_sgl[SG_CHUNK_SIZE];
        op->ctrl = ctrl;
        op->queue = queue;
        op->rq = rq;
        op->ctrl = ctrl;
        op->queue = queue;
        op->rq = rq;
@@ -1752,6 +1751,7 @@ nvme_fc_init_request(struct blk_mq_tag_set *set, struct request *rq,
        if (res)
                return res;
        op->op.fcp_req.first_sgl = &op->sgl[0];
        if (res)
                return res;
        op->op.fcp_req.first_sgl = &op->sgl[0];
+       op->op.fcp_req.private = &op->priv[0];
        return res;
 }
 
        return res;
 }