Commit cd65512d authored by Shuhei Matsumoto's avatar Shuhei Matsumoto Committed by Tomasz Zawadzki
Browse files

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: default avatarShuhei Matsumoto <smatsumoto@nvidia.com>
Signed-off-by: default avatarDenis Nagorny <denisn@nvidia.com>
Signed-off-by: default avatarEvgeniy Kochetov <evgeniik@nvidia.com>
Change-Id: Ied057d75dbfd9e54ce3c3671355b9ec3acad7ff5
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13597


Community-CI: Mellanox Build Bot
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarAleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
parent 41bb31a3
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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) {