Changeset View
Changeset View
Standalone View
Standalone View
head/sys/dev/nvme/nvme_qpair.c
Show First 20 Lines • Show All 813 Lines • ▼ Show 20 Lines | nvme_qpair_destroy(struct nvme_qpair *qpair) | ||||
struct nvme_tracker *tr; | struct nvme_tracker *tr; | ||||
if (qpair->tag) { | if (qpair->tag) { | ||||
bus_teardown_intr(qpair->ctrlr->dev, qpair->res, qpair->tag); | bus_teardown_intr(qpair->ctrlr->dev, qpair->res, qpair->tag); | ||||
qpair->tag = NULL; | qpair->tag = NULL; | ||||
} | } | ||||
if (qpair->act_tr) { | if (qpair->act_tr) { | ||||
free_domain(qpair->act_tr, M_NVME); | free(qpair->act_tr, M_NVME); | ||||
qpair->act_tr = NULL; | qpair->act_tr = NULL; | ||||
} | } | ||||
while (!TAILQ_EMPTY(&qpair->free_tr)) { | while (!TAILQ_EMPTY(&qpair->free_tr)) { | ||||
tr = TAILQ_FIRST(&qpair->free_tr); | tr = TAILQ_FIRST(&qpair->free_tr); | ||||
TAILQ_REMOVE(&qpair->free_tr, tr, tailq); | TAILQ_REMOVE(&qpair->free_tr, tr, tailq); | ||||
bus_dmamap_destroy(qpair->dma_tag_payload, | bus_dmamap_destroy(qpair->dma_tag_payload, | ||||
tr->payload_dma_map); | tr->payload_dma_map); | ||||
free_domain(tr, M_NVME); | free(tr, M_NVME); | ||||
} | } | ||||
if (qpair->cmd != NULL) { | if (qpair->cmd != NULL) { | ||||
bus_dmamap_unload(qpair->dma_tag, qpair->queuemem_map); | bus_dmamap_unload(qpair->dma_tag, qpair->queuemem_map); | ||||
bus_dmamem_free(qpair->dma_tag, qpair->cmd, | bus_dmamem_free(qpair->dma_tag, qpair->cmd, | ||||
qpair->queuemem_map); | qpair->queuemem_map); | ||||
qpair->cmd = NULL; | qpair->cmd = NULL; | ||||
} | } | ||||
▲ Show 20 Lines • Show All 463 Lines • Show Last 20 Lines |