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 <smatsumoto@nvidia.com> Signed-off-by: Denis Nagorny <denisn@nvidia.com> Signed-off-by: Evgeniy 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: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
parent
41bb31a36d
commit
cd65512d08
@ -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",
|
SPDK_ERRLOG("Failed to post WRs on receive queue, errno %d (%s), bad_wr %p\n",
|
||||||
rc, spdk_strerror(rc), bad_recv_wr);
|
rc, spdk_strerror(rc), bad_recv_wr);
|
||||||
while (bad_recv_wr != NULL) {
|
while (bad_recv_wr != NULL) {
|
||||||
assert(rqpair->current_num_sends > 0);
|
assert(rqpair->current_num_recvs > 0);
|
||||||
rqpair->current_num_recvs--;
|
rqpair->current_num_recvs--;
|
||||||
bad_recv_wr = bad_recv_wr->next;
|
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
|
static inline int
|
||||||
nvme_rdma_qpair_queue_recv_wr(struct nvme_rdma_qpair *rqpair, struct ibv_recv_wr *wr)
|
nvme_rdma_qpair_queue_recv_wr(struct nvme_rdma_qpair *rqpair, struct ibv_recv_wr *wr)
|
||||||
{
|
{
|
||||||
|
|
||||||
assert(wr->next == NULL);
|
assert(wr->next == NULL);
|
||||||
assert(rqpair->current_num_recvs < rqpair->num_entries);
|
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);
|
rqpair = nvme_rdma_qpair(rdma_req->req->qpair);
|
||||||
rdma_req->completion_flags |= NVME_RDMA_SEND_COMPLETED;
|
rdma_req->completion_flags |= NVME_RDMA_SEND_COMPLETED;
|
||||||
|
assert(rqpair->current_num_sends > 0);
|
||||||
rqpair->current_num_sends--;
|
rqpair->current_num_sends--;
|
||||||
|
|
||||||
if ((rdma_req->completion_flags & NVME_RDMA_RECV_COMPLETED) != 0) {
|
if ((rdma_req->completion_flags & NVME_RDMA_RECV_COMPLETED) != 0) {
|
||||||
|
Loading…
Reference in New Issue
Block a user