diff options
author | Russell King (Oracle) <rmk+kernel@armlinux.org.uk> | 2022-10-12 14:46:06 +0300 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2022-10-19 11:36:39 +0300 |
commit | d622f8477a8018974f8df961440dca58224f9c6b (patch) | |
tree | 463ce10fcf03e774d9395b66f60c09ab98bcf7db /drivers/nvme/host | |
parent | ac9b57d4e1e3ecf0122e915bbba1bd4c90ec3031 (diff) | |
download | linux-d622f8477a8018974f8df961440dca58224f9c6b.tar.xz |
nvme-apple: don't limit DMA segement size
NVMe uses PRPs for data transfers and has no specific limit for a single
DMA segement. Limiting the size will cause problems because the block
layer assumes PRP-ish devices using a virt boundary mask don't have a
segment limit. And while this is true, we also really need to tell the
DMA mapping layer about it, otherwise dma-debug will trip over it.
Fixes: 5bd2927aceba ("nvme-apple: Add initial Apple SoC NVMe driver")
Suggested-by: Sven Peter <sven@svenpeter.dev>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
[hch: rewrote the commit message based on the PCIe commit]
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Eric Curtin <ecurtin@redhat.com>
Reviewed-by: Sven Peter <sven@svenpeter.dev>
Diffstat (limited to 'drivers/nvme/host')
-rw-r--r-- | drivers/nvme/host/apple.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/nvme/host/apple.c b/drivers/nvme/host/apple.c index 5fc5ea196b40..ff8b083dc5c6 100644 --- a/drivers/nvme/host/apple.c +++ b/drivers/nvme/host/apple.c @@ -1039,6 +1039,8 @@ static void apple_nvme_reset_work(struct work_struct *work) dma_max_mapping_size(anv->dev) >> 9); anv->ctrl.max_segments = NVME_MAX_SEGS; + dma_set_max_seg_size(anv->dev, 0xffffffff); + /* * Enable NVMMU and linear submission queues. * While we could keep those disabled and pretend this is slightly |