git: d9cacf0b66c3 - stable/13 - nvme(4): Do not panic on admin queue construct error.

Alexander Motin mav at FreeBSD.org
Tue Sep 7 01:25:00 UTC 2021


The branch stable/13 has been updated by mav:

URL: https://cgit.FreeBSD.org/src/commit/?id=d9cacf0b66c3b43417c39552903f010c9f3c32de

commit d9cacf0b66c3b43417c39552903f010c9f3c32de
Author:     Alexander Motin <mav at FreeBSD.org>
AuthorDate: 2021-08-31 00:36:22 +0000
Commit:     Alexander Motin <mav at FreeBSD.org>
CommitDate: 2021-09-07 01:24:53 +0000

    nvme(4): Do not panic on admin queue construct error.
    
    MFC after:      1 week
    
    (cherry picked from commit 31111372e6bad7212dbee36dd312e3b53fdfd3f6)
---
 sys/dev/nvme/nvme_ctrlr.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/sys/dev/nvme/nvme_ctrlr.c b/sys/dev/nvme/nvme_ctrlr.c
index d8760158a75f..c4a41c453b6a 100644
--- a/sys/dev/nvme/nvme_ctrlr.c
+++ b/sys/dev/nvme/nvme_ctrlr.c
@@ -1474,6 +1474,8 @@ nvme_ctrlr_destruct(struct nvme_controller *ctrlr, device_t dev)
 
 	if (ctrlr->resource == NULL)
 		goto nores;
+	if (!mtx_initialized(&ctrlr->adminq.lock))
+		goto noadminq;
 
 	/*
 	 * Check whether it is a hot unplug or a clean driver detach.
@@ -1519,6 +1521,7 @@ nvme_ctrlr_destruct(struct nvme_controller *ctrlr, device_t dev)
 	if (!gone)
 		nvme_ctrlr_disable(ctrlr);
 
+noadminq:
 	if (ctrlr->taskqueue)
 		taskqueue_free(ctrlr->taskqueue);
 


More information about the dev-commits-src-branches mailing list