@@ -5573,42 +5573,20 @@ void __init hugetlb_cma_reserve(int order)
reserved = 0;
for_each_node_state(nid, N_ONLINE) {
- unsigned long min_pfn = 0, max_pfn = 0;
int res;
-#ifdef CONFIG_NUMA
- unsigned long start_pfn, end_pfn;
- int i;
- for_each_mem_pfn_range(i, nid, &start_pfn, &end_pfn, NULL) {
- if (!min_pfn)
- min_pfn = start_pfn;
- max_pfn = end_pfn;
- }
-#else
- min_pfn = min_low_pfn;
- max_pfn = max_low_pfn;
-#endif
size = min(per_node, hugetlb_cma_size - reserved);
size = round_up(size, PAGE_SIZE << order);
- if (size > ((max_pfn - min_pfn) << PAGE_SHIFT) / 2) {
- pr_warn("hugetlb_cma: cma_area is too big, please try less than %lu MiB\n",
- round_down(((max_pfn - min_pfn) << PAGE_SHIFT) *
- nr_online_nodes / 2 / SZ_1M,
- PAGE_SIZE << order));
- break;
- }
-
- res = cma_declare_contiguous(PFN_PHYS(min_pfn), size,
- PFN_PHYS(max_pfn),
+ res = cma_declare_contiguous_nid(0, size,
+ 0,
PAGE_SIZE << order,
0, false,
- "hugetlb", &hugetlb_cma[nid]);
+ "hugetlb", &hugetlb_cma[nid], nid);
+
if (res) {
- phys_addr_t begpa = PFN_PHYS(min_pfn);
- phys_addr_t endpa = PFN_PHYS(max_pfn);
- pr_warn("%s: reservation failed: err %d, node %d, [%pap, %pap)\n",
- __func__, res, nid, &begpa, &endpa);
+ pr_warn("%s: reservation failed: err %d, node %d\n",
+ __func__, res, nid);
break;
}