From 50cc397d6f4e1dabf9484e046405d15a6d745b40 Mon Sep 17 00:00:00 2001 From: Daniel Verkamp Date: Mon, 24 Apr 2017 16:47:27 -0700 Subject: [PATCH] nvme: simplify nvme_ctrlr_destruct qpair loop Fixes a scan-build warning about using qpairs after they have been freed. Change-Id: I263eabd6b784acf540c66136965f7705ef110a78 Signed-off-by: Daniel Verkamp --- lib/nvme/nvme_ctrlr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/nvme/nvme_ctrlr.c b/lib/nvme/nvme_ctrlr.c index 2f0a89ed2..d7cb083e6 100644 --- a/lib/nvme/nvme_ctrlr.c +++ b/lib/nvme/nvme_ctrlr.c @@ -1359,9 +1359,9 @@ nvme_ctrlr_init_cap(struct spdk_nvme_ctrlr *ctrlr, const union spdk_nvme_cap_reg void nvme_ctrlr_destruct(struct spdk_nvme_ctrlr *ctrlr) { - while (!TAILQ_EMPTY(&ctrlr->active_io_qpairs)) { - struct spdk_nvme_qpair *qpair = TAILQ_FIRST(&ctrlr->active_io_qpairs); + struct spdk_nvme_qpair *qpair, *tmp; + TAILQ_FOREACH_SAFE(qpair, &ctrlr->active_io_qpairs, tailq, tmp) { spdk_nvme_ctrlr_free_io_qpair(qpair); }