From: Prashant Kamble Date: Sun, 24 May 2026 15:47:14 +0000 (+0530) Subject: nvme: avoid deleting uncreated queues X-Git-Tag: v2026.07-rc4~4^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=61280341e926aee1787d9aedb358a43fad96e787;p=thirdparty%2Fu-boot.git nvme: avoid deleting uncreated queues nvme_create_queue() may issue Delete CQ or Delete SQ commands even when the corresponding queue creation failed. Avoid sending delete commands for queues that were never successfully created. Signed-off-by: Prashant Kamble Reviewed-by: Neil Armstrong Link: https://patch.msgid.link/20260524154718.16381-1-prashant.kamble223@gmail.com Signed-off-by: Neil Armstrong --- diff --git a/drivers/nvme/nvme.c b/drivers/nvme/nvme.c index da7dad9f52b..30eba0bf7c7 100644 --- a/drivers/nvme/nvme.c +++ b/drivers/nvme/nvme.c @@ -298,11 +298,6 @@ static int nvme_delete_queue(struct nvme_dev *dev, u8 opcode, u16 id) return nvme_submit_admin_cmd(dev, &c, NULL); } -static int nvme_delete_sq(struct nvme_dev *dev, u16 sqid) -{ - return nvme_delete_queue(dev, nvme_admin_delete_sq, sqid); -} - static int nvme_delete_cq(struct nvme_dev *dev, u16 cqid) { return nvme_delete_queue(dev, nvme_admin_delete_cq, cqid); @@ -563,20 +558,19 @@ static int nvme_create_queue(struct nvme_queue *nvmeq, int qid) nvmeq->cq_vector = qid - 1; result = nvme_alloc_cq(dev, qid, nvmeq); if (result < 0) - goto release_cq; + goto release_ret; result = nvme_alloc_sq(dev, qid, nvmeq); if (result < 0) - goto release_sq; + goto release_cq; nvme_init_queue(nvmeq, qid); return result; - release_sq: - nvme_delete_sq(dev, qid); release_cq: nvme_delete_cq(dev, qid); + release_ret: return result; }