summaryrefslogtreecommitdiffstats
path: root/sys/dev/nvme/nvme_qpair.c
diff options
context:
space:
mode:
authorjimharris <jimharris@FreeBSD.org>2014-03-17 22:37:17 +0000
committerjimharris <jimharris@FreeBSD.org>2014-03-17 22:37:17 +0000
commit51675bd43f687bc1b9b0b03892fbc60c62f43a64 (patch)
tree73de2cfaddf85c7109110b855df99f3008bf8f5e /sys/dev/nvme/nvme_qpair.c
parent797abe98034de6a3173ea662f06ebf1250a6d7b8 (diff)
downloadFreeBSD-src-51675bd43f687bc1b9b0b03892fbc60c62f43a64.zip
FreeBSD-src-51675bd43f687bc1b9b0b03892fbc60c62f43a64.tar.gz
nvme: NVMe specification dictates 4-byte alignment for PRPs (not 8).
Sponsored by: Intel MFC after: 3 days
Diffstat (limited to 'sys/dev/nvme/nvme_qpair.c')
-rw-r--r--sys/dev/nvme/nvme_qpair.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/dev/nvme/nvme_qpair.c b/sys/dev/nvme/nvme_qpair.c
index e6b1e0a8c..1ca78cf 100644
--- a/sys/dev/nvme/nvme_qpair.c
+++ b/sys/dev/nvme/nvme_qpair.c
@@ -498,8 +498,9 @@ nvme_qpair_construct(struct nvme_qpair *qpair, uint32_t id,
mtx_init(&qpair->lock, "nvme qpair lock", NULL, MTX_DEF);
+ /* Note: NVMe PRP format is restricted to 4-byte alignment. */
bus_dma_tag_create(bus_get_dma_tag(ctrlr->dev),
- sizeof(uint64_t), PAGE_SIZE, BUS_SPACE_MAXADDR,
+ 4, PAGE_SIZE, BUS_SPACE_MAXADDR,
BUS_SPACE_MAXADDR, NULL, NULL, NVME_MAX_XFER_SIZE,
(NVME_MAX_XFER_SIZE/PAGE_SIZE)+1, PAGE_SIZE, 0,
NULL, NULL, &qpair->dma_tag);
OpenPOWER on IntegriCloud