summaryrefslogtreecommitdiffstats
path: root/drivers/nvme
diff options
context:
space:
mode:
authorKeith Busch <kbusch@kernel.org>2022-05-04 11:43:25 -0700
committerChristoph Hellwig <hch@lst.de>2022-05-16 08:06:58 +0200
commit52fde2c07da606f3f120af4f734eadcfb52b04be (patch)
tree90dbc30b1de3b9229abce329ef8e4de58a9ace3c /drivers/nvme
parent1a86924e4f464757546d7f7bdc469be237918395 (diff)
downloadlinux-52fde2c07da606f3f120af4f734eadcfb52b04be.tar.gz
linux-52fde2c07da606f3f120af4f734eadcfb52b04be.tar.bz2
linux-52fde2c07da606f3f120af4f734eadcfb52b04be.zip
nvme: set dma alignment to dword
The nvme specification only requires qword alignment for segment descriptors, and the driver already guarantees that. The spec has always allowed user data to be dword aligned, which is what the queue's attribute is for, so relax the alignment requirement to that value. While we could allow byte alignment for some controllers when using SGLs, we still need to support PRP, and that only allows dword. Fixes: 3b2a1ebceba3 ("nvme: set dma alignment to qword") Signed-off-by: Keith Busch <kbusch@kernel.org> Signed-off-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'drivers/nvme')
-rw-r--r--drivers/nvme/host/core.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
index f41b2b18fad9..9a6fb071d986 100644
--- a/drivers/nvme/host/core.c
+++ b/drivers/nvme/host/core.c
@@ -1773,7 +1773,7 @@ static void nvme_set_queue_limits(struct nvme_ctrl *ctrl,
blk_queue_max_segments(q, min_t(u32, max_segments, USHRT_MAX));
}
blk_queue_virt_boundary(q, NVME_CTRL_PAGE_SIZE - 1);
- blk_queue_dma_alignment(q, 7);
+ blk_queue_dma_alignment(q, 3);
blk_queue_write_cache(q, vwc, vwc);
}