From cd65512d0832b1f2762b7870c3dda9a3f6051646 Mon Sep 17 00:00:00 2001 From: Shuhei Matsumoto Date: Sat, 21 May 2022 07:50:01 +0900 Subject: [PATCH] nvme_rdma: Fix assertion for rqpair->current_num_sends/recvs assert() in nvme_rdma_queue_recv_wr() was wrong and assert() in nvme_rdma_cq_process_completions() was missing. This patch fixes both. Signed-off-by: Shuhei Matsumoto Signed-off-by: Denis Nagorny Signed-off-by: Evgeniy Kochetov Change-Id: Ied057d75dbfd9e54ce3c3671355b9ec3acad7ff5 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13597 Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins Reviewed-by: Aleksey Marchuk Reviewed-by: Ben Walker --- lib/nvme/nvme_rdma.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/nvme/nvme_rdma.c b/lib/nvme/nvme_rdma.c index 79598740f..fab23d74b 100644 --- a/lib/nvme/nvme_rdma.c +++ b/lib/nvme/nvme_rdma.c @@ -831,7 +831,7 @@ nvme_rdma_qpair_submit_recvs(struct nvme_rdma_qpair *rqpair) SPDK_ERRLOG("Failed to post WRs on receive queue, errno %d (%s), bad_wr %p\n", rc, spdk_strerror(rc), bad_recv_wr); while (bad_recv_wr != NULL) { - assert(rqpair->current_num_sends > 0); + assert(rqpair->current_num_recvs > 0); rqpair->current_num_recvs--; bad_recv_wr = bad_recv_wr->next; } @@ -864,7 +864,6 @@ nvme_rdma_qpair_queue_send_wr(struct nvme_rdma_qpair *rqpair, struct ibv_send_wr static inline int nvme_rdma_qpair_queue_recv_wr(struct nvme_rdma_qpair *rqpair, struct ibv_recv_wr *wr) { - assert(wr->next == NULL); assert(rqpair->current_num_recvs < rqpair->num_entries); @@ -2619,6 +2618,7 @@ nvme_rdma_cq_process_completions(struct ibv_cq *cq, uint32_t batch_size, rqpair = nvme_rdma_qpair(rdma_req->req->qpair); rdma_req->completion_flags |= NVME_RDMA_SEND_COMPLETED; + assert(rqpair->current_num_sends > 0); rqpair->current_num_sends--; if ((rdma_req->completion_flags & NVME_RDMA_RECV_COMPLETED) != 0) {