diff options
author | jimharris <jimharris@FreeBSD.org> | 2013-03-26 18:45:16 +0000 |
---|---|---|
committer | jimharris <jimharris@FreeBSD.org> | 2013-03-26 18:45:16 +0000 |
commit | 5220c76da822d03f6c1e6e5848d8d6227d6f0ba3 (patch) | |
tree | 3df9f4b11d944ca9fffed237af1791ef45ea28db /sys/dev/nvme/nvme_private.h | |
parent | a3af497c87192d7864d33b58a637530aaac4d1dc (diff) | |
download | FreeBSD-src-5220c76da822d03f6c1e6e5848d8d6227d6f0ba3.zip FreeBSD-src-5220c76da822d03f6c1e6e5848d8d6227d6f0ba3.tar.gz |
Keep a doubly-linked list of outstanding trackers.
This enables in-order re-submission of I/O after a controller reset.
Sponsored by: Intel
Diffstat (limited to 'sys/dev/nvme/nvme_private.h')
-rw-r--r-- | sys/dev/nvme/nvme_private.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/dev/nvme/nvme_private.h b/sys/dev/nvme/nvme_private.h index 97a936e..4876bd5 100644 --- a/sys/dev/nvme/nvme_private.h +++ b/sys/dev/nvme/nvme_private.h @@ -127,7 +127,7 @@ struct nvme_async_event_request { struct nvme_tracker { - SLIST_ENTRY(nvme_tracker) slist; + TAILQ_ENTRY(nvme_tracker) tailq; struct nvme_request *req; struct nvme_qpair *qpair; struct callout timer; @@ -174,7 +174,8 @@ struct nvme_qpair { bus_dmamap_t cpl_dma_map; uint64_t cpl_bus_addr; - SLIST_HEAD(, nvme_tracker) free_tr; + TAILQ_HEAD(, nvme_tracker) free_tr; + TAILQ_HEAD(, nvme_tracker) outstanding_tr; STAILQ_HEAD(, nvme_request) queued_req; struct nvme_tracker **act_tr; |