Commit 4f36a2a6 authored by Chunsong Feng's avatar Chunsong Feng Committed by Jim Harris
Browse files

nvme/rdma: clear dif_enable when rdma_req is free



The dif_enable is not cleared in _nvmf_rdma_request_free. When the
rdma_req is used again, the dif_enable is true while
dif.dif_ctx->block_size is zero. As a result, an infinite loop occurs in
nvmf_rdma_fill_wr_sgl.

Fix issue: #2380

Signed-off-by: default avatarChunsong Feng <fengchunsong@huawei.com>
Change-Id: Ic179855f7b257e39ed4a5f6705fbc9dea64210ae
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/11646


Reviewed-by: default avatarAleksey Marchuk <alexeymar@mellanox.com>
Reviewed-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
parent 8be59045
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1846,6 +1846,7 @@ _nvmf_rdma_request_free(struct spdk_nvmf_rdma_request *rdma_req,
	rdma_req->rsp.wr.next = NULL;
	rdma_req->data.wr.next = NULL;
	rdma_req->offset = 0;
	rdma_req->req.dif_enabled = false;
	memset(&rdma_req->req.dif, 0, sizeof(rdma_req->req.dif));
	rqpair->qd--;