diff --git a/src/add-ons/kernel/drivers/disk/nvme/libnvme/nvme_qpair.c b/src/add-ons/kernel/drivers/disk/nvme/libnvme/nvme_qpair.c index 42821045e0..cc96162aaf 100644 --- a/src/add-ons/kernel/drivers/disk/nvme/libnvme/nvme_qpair.c +++ b/src/add-ons/kernel/drivers/disk/nvme/libnvme/nvme_qpair.c @@ -961,6 +961,9 @@ fail: void nvme_qpair_destroy(struct nvme_qpair *qpair) { + if (!qpair->ctrlr) + return; // Not initialized. + if (nvme_qpair_is_admin_queue(qpair)) _nvme_qpair_admin_qpair_destroy(qpair); @@ -978,6 +981,8 @@ void nvme_qpair_destroy(struct nvme_qpair *qpair) } nvme_request_pool_destroy(qpair); + qpair->ctrlr = NULL; + pthread_mutex_destroy(&qpair->lock); }