From c9593cd17e77afa41489ce70f743114bbf5120d2 Mon Sep 17 00:00:00 2001 From: Ben Walker Date: Fri, 22 Jul 2016 15:08:55 -0700 Subject: [PATCH] nvmf: Add temporary special handling for AER AER breaks our current model of requests/completion pairs. Temporarily handle it by immediately re-posting the capsule while we work on a real solution. Change-Id: Ie7a4d88030b6fff5a11c4697eec0f024f9737f27 Signed-off-by: Ben Walker --- lib/nvmf/rdma.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lib/nvmf/rdma.c b/lib/nvmf/rdma.c index dac2d8adc..8fb487cba 100644 --- a/lib/nvmf/rdma.c +++ b/lib/nvmf/rdma.c @@ -1187,6 +1187,19 @@ spdk_nvmf_rdma_poll(struct spdk_nvmf_conn *conn) return -1; } + { + /* TEMPORARY SPECIAL CASE: For asynchronous event requests, just immediately + * re-post the capsule. */ + struct spdk_nvme_cmd *cmd = &req->cmd->nvme_cmd; + + if (conn->type == CONN_TYPE_AQ && + cmd->opc == SPDK_NVME_OPC_ASYNC_EVENT_REQUEST) { + spdk_nvmf_rdma_request_release(conn, req); + break; + } + + } + memset(req->rsp, 0, sizeof(*req->rsp)); rc = spdk_nvmf_request_prep_data(req, rdma_req->bb_mr->addr,