summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mm/bootmem_info.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/mm/bootmem_info.c b/mm/bootmem_info.c
index e61e08e24924..3d7675a3ae04 100644
--- a/mm/bootmem_info.c
+++ b/mm/bootmem_info.c
@@ -44,17 +44,16 @@ static void __init register_page_bootmem_info_section(unsigned long start_pfn)
{
unsigned long mapsize, section_nr, i;
struct mem_section *ms;
- struct page *page, *memmap;
struct mem_section_usage *usage;
+ struct page *page;
+ start_pfn = SECTION_ALIGN_DOWN(start_pfn);
section_nr = pfn_to_section_nr(start_pfn);
ms = __nr_to_section(section_nr);
- memmap = sparse_decode_mem_map(ms->section_mem_map, section_nr);
-
if (!preinited_vmemmap_section(ms))
- register_page_bootmem_memmap(section_nr, memmap,
- PAGES_PER_SECTION);
+ register_page_bootmem_memmap(section_nr, pfn_to_page(start_pfn),
+ PAGES_PER_SECTION);
usage = ms->usage;
page = virt_to_page(usage);