From 302828bb5b05d25fb13584e867bb7f45c2634544 Mon Sep 17 00:00:00 2001 From: Jim Harris Date: Thu, 15 Jun 2017 07:05:56 -0700 Subject: [PATCH] nvme: free req_buf after deleting queues Signed-off-by: Jim Harris Change-Id: I941a4cb5563cebb2e68b48d3a74b4b73af0e9657 Reviewed-on: https://review.gerrithub.io/365662 Tested-by: SPDK Automated Test System Reviewed-by: Ben Walker Reviewed-by: Daniel Verkamp --- lib/nvme/nvme_ctrlr.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/nvme/nvme_ctrlr.c b/lib/nvme/nvme_ctrlr.c index dc8bcb110..618aa7430 100644 --- a/lib/nvme/nvme_ctrlr.c +++ b/lib/nvme/nvme_ctrlr.c @@ -205,6 +205,7 @@ int spdk_nvme_ctrlr_free_io_qpair(struct spdk_nvme_qpair *qpair) { struct spdk_nvme_ctrlr *ctrlr; + void *req_buf; if (qpair == NULL) { return 0; @@ -230,13 +231,15 @@ spdk_nvme_ctrlr_free_io_qpair(struct spdk_nvme_qpair *qpair) TAILQ_REMOVE(&ctrlr->active_io_qpairs, qpair, tailq); spdk_bit_array_set(ctrlr->free_io_qids, qpair->id); - spdk_dma_free(qpair->req_buf); + req_buf = qpair->req_buf; if (nvme_transport_ctrlr_delete_io_qpair(ctrlr, qpair)) { nvme_robust_mutex_unlock(&ctrlr->ctrlr_lock); return -1; } + spdk_dma_free(req_buf); + nvme_robust_mutex_unlock(&ctrlr->ctrlr_lock); return 0; }