nvmet-rdma: check for timeout in nvme_rdma_wait_for_cm()
authorBart Van Assche <bvanassche@acm.org>
Mon, 8 Oct 2018 21:28:54 +0000 (14:28 -0700)
committerChristoph Hellwig <hch@lst.de>
Wed, 17 Oct 2018 06:58:24 +0000 (08:58 +0200)
Check whether queue->cm_error holds a value before reading it. This patch
addresses Coverity ID 1373774: unchecked return value.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/nvme/host/rdma.c

index dc04201..e7be903 100644 (file)
@@ -233,8 +233,15 @@ static void nvme_rdma_qp_event(struct ib_event *event, void *context)
 
 static int nvme_rdma_wait_for_cm(struct nvme_rdma_queue *queue)
 {
-       wait_for_completion_interruptible_timeout(&queue->cm_done,
+       int ret;
+
+       ret = wait_for_completion_interruptible_timeout(&queue->cm_done,
                        msecs_to_jiffies(NVME_RDMA_CONNECT_TIMEOUT_MS) + 1);
+       if (ret < 0)
+               return ret;
+       if (ret == 0)
+               return -ETIMEDOUT;
+       WARN_ON_ONCE(queue->cm_error > 0);
        return queue->cm_error;
 }