From 0270fc322f38130a7a52f48571bb9807fb3f4602 Mon Sep 17 00:00:00 2001 From: Rui Chang Date: Tue, 22 Feb 2022 14:39:05 +0800 Subject: [PATCH] nvmf/vfio-user: Fix abort request bug One simple fix for nvmf_vfio_user_qpair_abort_request(). Current implementation mixed up request of abort cmd and the request to abort, which cause problems. Signed-off-by: Rui Chang Change-Id: Ia0db9aa738e372789fc502ef877fd1c841c0a2e3 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/11711 Reviewed-by: John Levon Reviewed-by: Changpeng Liu Reviewed-by: Jim Harris Reviewed-by: Aleksey Marchuk Community-CI: Broadcom CI Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins --- lib/nvmf/vfio_user.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/nvmf/vfio_user.c b/lib/nvmf/vfio_user.c index cc3d74f1d..71c5099bc 100644 --- a/lib/nvmf/vfio_user.c +++ b/lib/nvmf/vfio_user.c @@ -4245,17 +4245,18 @@ nvmf_vfio_user_qpair_abort_request(struct spdk_nvmf_qpair *qpair, struct spdk_nvmf_request *req) { struct spdk_nvmf_request *req_to_abort = NULL; + struct spdk_nvmf_request *temp_req = NULL; uint16_t cid; cid = req->cmd->nvme_cmd.cdw10_bits.abort.cid; - TAILQ_FOREACH(req, &qpair->outstanding, link) { + TAILQ_FOREACH(temp_req, &qpair->outstanding, link) { struct nvmf_vfio_user_req *vu_req; - vu_req = SPDK_CONTAINEROF(req, struct nvmf_vfio_user_req, req); + vu_req = SPDK_CONTAINEROF(temp_req, struct nvmf_vfio_user_req, req); if (vu_req->state == VFIO_USER_REQUEST_STATE_EXECUTING && vu_req->cmd.cid == cid) { - req_to_abort = req; + req_to_abort = temp_req; break; } }