From dc5fdb801559ebdf065bc9a39e4663686db5855a Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Tue, 3 Dec 2024 15:57:01 +0000 Subject: [PATCH] nvme-pci: Disable Host Memory Buffer usage Some NVME drives seem to request significant amounts of DMA coherent memory - enough to exhaust our standard 64MB CMA allocation. Try disabling the feature to see what effect it has - drives should continue to function without it. Link: https://github.com/raspberrypi/linux/issues/6504 Signed-off-by: Phil Elwell --- drivers/nvme/host/pci.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c index 4b9fda0b1d9a33..3b82deed147b01 100644 --- a/drivers/nvme/host/pci.c +++ b/drivers/nvme/host/pci.c @@ -1973,6 +1973,7 @@ static void nvme_free_host_mem(struct nvme_dev *dev) dev->nr_host_mem_descs = 0; } +#if 0 static int __nvme_alloc_host_mem(struct nvme_dev *dev, u64 preferred, u32 chunk_size) { @@ -2040,9 +2041,11 @@ static int __nvme_alloc_host_mem(struct nvme_dev *dev, u64 preferred, dev->host_mem_descs = NULL; return -ENOMEM; } +#endif static int nvme_alloc_host_mem(struct nvme_dev *dev, u64 min, u64 preferred) { +#if 0 u64 min_chunk = min_t(u64, preferred, PAGE_SIZE * MAX_ORDER_NR_PAGES); u64 hmminds = max_t(u32, dev->ctrl.hmminds * 4096, PAGE_SIZE * 2); u64 chunk_size; @@ -2055,6 +2058,7 @@ static int nvme_alloc_host_mem(struct nvme_dev *dev, u64 min, u64 preferred) nvme_free_host_mem(dev); } } +#endif return -ENOMEM; }