|
@@ -412,37 +412,6 @@ static void __init memory_less_nodes(void)
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
-#ifdef CONFIG_SPARSEMEM
|
|
|
-/**
|
|
|
- * register_sparse_mem - notify SPARSEMEM that this memory range exists.
|
|
|
- * @start: physical start of range
|
|
|
- * @end: physical end of range
|
|
|
- * @arg: unused
|
|
|
- *
|
|
|
- * Simply calls SPARSEMEM to register memory section(s).
|
|
|
- */
|
|
|
-static int __init register_sparse_mem(unsigned long start, unsigned long end,
|
|
|
- void *arg)
|
|
|
-{
|
|
|
- int nid;
|
|
|
-
|
|
|
- start = __pa(start) >> PAGE_SHIFT;
|
|
|
- end = __pa(end) >> PAGE_SHIFT;
|
|
|
- nid = early_pfn_to_nid(start);
|
|
|
- memory_present(nid, start, end);
|
|
|
-
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
-static void __init arch_sparse_init(void)
|
|
|
-{
|
|
|
- efi_memmap_walk(register_sparse_mem, NULL);
|
|
|
- sparse_init();
|
|
|
-}
|
|
|
-#else
|
|
|
-#define arch_sparse_init() do {} while (0)
|
|
|
-#endif
|
|
|
-
|
|
|
/**
|
|
|
* find_memory - walk the EFI memory map and setup the bootmem allocator
|
|
|
*
|
|
@@ -694,10 +663,11 @@ void __init paging_init(void)
|
|
|
|
|
|
max_dma = virt_to_phys((void *) MAX_DMA_ADDRESS) >> PAGE_SHIFT;
|
|
|
|
|
|
- arch_sparse_init();
|
|
|
-
|
|
|
efi_memmap_walk(filter_rsvd_memory, count_node_pages);
|
|
|
|
|
|
+ sparse_memory_present_with_active_regions(MAX_NUMNODES);
|
|
|
+ sparse_init();
|
|
|
+
|
|
|
#ifdef CONFIG_VIRTUAL_MEM_MAP
|
|
|
vmalloc_end -= PAGE_ALIGN(ALIGN(max_low_pfn, MAX_ORDER_NR_PAGES) *
|
|
|
sizeof(struct page));
|