[PATCH] mm/cma: get nid from physical address

From: Yajun Deng
Date: Thu May 16 2024 - 05:17:40 EST


The nid passed to cma_declare_contiguous_nid() may be NUMA_NO_NODE,
which is not the actual nid. To get the correct nid, we can get the nid
from physical address.

Signed-off-by: Yajun Deng <yajun.deng@xxxxxxxxx>
---
mm/cma.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/mm/cma.c b/mm/cma.c
index 3e9724716bad..be6cdde32944 100644
--- a/mm/cma.c
+++ b/mm/cma.c
@@ -361,6 +361,7 @@ int __init cma_declare_contiguous_nid(phys_addr_t base,
kmemleak_ignore_phys(addr);
base = addr;
}
+ nid = early_pfn_to_nid(PHYS_PFN(base));

ret = cma_init_reserved_mem(base, size, order_per_bit, name, res_cma);
if (ret)
--
2.25.1