From fda47c026dee7acd975ee2c0f7a440d4038cfaa3 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(+) --- a/drivers/nvme/host/pci.c +++ b/drivers/nvme/host/pci.c @@ -1932,6 +1932,7 @@ static void nvme_free_host_mem(struct nv dev->nr_host_mem_descs = 0; } +#if 0 static int __nvme_alloc_host_mem(struct nvme_dev *dev, u64 preferred, u32 chunk_size) { @@ -2000,9 +2001,11 @@ out: 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; @@ -2015,6 +2018,7 @@ static int nvme_alloc_host_mem(struct nv nvme_free_host_mem(dev); } } +#endif return -ENOMEM; }