nvmf: Always use 2 sgl elements for recv
Admin commands technically don't allow inline data, but there is nothing from preventing us from posting a recv buffer that could handle inline data. It just won't be used for incoming admin capsules. Change-Id: I3e7e4406e01ab870654a166d52221c11fc0ac683 Signed-off-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
parent
f7afa70bcb
commit
2a806421c3
@ -381,19 +381,10 @@ nvmf_post_rdma_recv(struct spdk_nvmf_conn *conn,
|
|||||||
wr.wr_id = (uintptr_t)rdma_req;
|
wr.wr_id = (uintptr_t)rdma_req;
|
||||||
wr.next = NULL;
|
wr.next = NULL;
|
||||||
wr.sg_list = &rdma_req->recv_sgl;
|
wr.sg_list = &rdma_req->recv_sgl;
|
||||||
wr.num_sge = 1;
|
wr.num_sge = 2;
|
||||||
|
|
||||||
nvmf_trace_ibv_sge(&rdma_req->recv_sgl);
|
nvmf_trace_ibv_sge(&rdma_req->recv_sgl);
|
||||||
|
|
||||||
/* for I/O queues we add bb sgl for in-capsule data use */
|
|
||||||
if (conn->type == CONN_TYPE_IOQ) {
|
|
||||||
wr.num_sge = 2;
|
|
||||||
SPDK_TRACELOG(SPDK_TRACE_DEBUG, "sgl2 local addr %p, length 0x%x, lkey 0x%x\n",
|
|
||||||
(void *)rdma_req->bb_sgl.addr,
|
|
||||||
rdma_req->bb_sgl.length,
|
|
||||||
rdma_req->bb_sgl.lkey);
|
|
||||||
}
|
|
||||||
|
|
||||||
rc = ibv_post_recv(conn->rdma.qp, &wr, &bad_wr);
|
rc = ibv_post_recv(conn->rdma.qp, &wr, &bad_wr);
|
||||||
if (rc) {
|
if (rc) {
|
||||||
SPDK_ERRLOG("Failure posting rdma recv, rc = 0x%x\n", rc);
|
SPDK_ERRLOG("Failure posting rdma recv, rc = 0x%x\n", rc);
|
||||||
|
Loading…
Reference in New Issue
Block a user